增加RSH(Really Simple History)框架对IE8的支持
2010-08-31 10:59
357 查看
RSH提供了存储客户与Web应用交互过程产生的多个历史记录事件的能力。每个事件与一个保存在文档的URL相联系。当用户点击浏览器的后退和前进按钮时,RSH使用该Hash对象的值获取与其相关的事件并调用任何注册到该事件的事件处理器。(51CTO)
RSH6.0没有提供对IE8的支持,经测试,RSH对IE8的支持很差。我们知道,RSH增加对浏览器前进后退的支持是通过改变浏览器地址栏的HASH来实现的,在Firefox下直接更改地址HASH可添加一条历史记录,而在IE6、7下是通过添加一个IFRAME来实现的,在IE8中可直接更改一个HASH来添加一条历史记录,因此对IE8的处理和FIREFOX的处理是一致的。
更改line48-67判断浏览器类型的代码为(其中$.browser来自JQuery)即可:
另外,在Firefox和IE8下,如果缓存的数据过大,本人测试,大于20K,存储缓存的速度明显变慢,在刚才代码下加如下代码可解决该问题,原因请高手回答:
RSH6.0没有提供对IE8的支持,经测试,RSH对IE8的支持很差。我们知道,RSH增加对浏览器前进后退的支持是通过改变浏览器地址栏的HASH来实现的,在Firefox下直接更改地址HASH可添加一条历史记录,而在IE6、7下是通过添加一个IFRAME来实现的,在IE8中可直接更改一个HASH来添加一条历史记录,因此对IE8的处理和FIREFOX的处理是一致的。
更改line48-67判断浏览器类型的代码为(其中$.browser来自JQuery)即可:
/*set user-agent flags*/ var UA = navigator.userAgent.toLowerCase(); var platform = navigator.platform.toLowerCase(); var vendor = navigator.vendor || ""; if (vendor === "KDE") { this.isKonqueror = true; this.isSupported = false; } else if (typeof window.opera !== "undefined") { this.isOpera = true; this.isSupported = true; } else if (typeof document.all !== "undefined" && $.browser.version !== '8.0') { this.isIE = true; this.isSupported = true; } else if (vendor.indexOf("Apple Computer, Inc.") > -1) { this.isSafari = true; this.isSupported = (platform.indexOf("mac") > -1); } else if (UA.indexOf("gecko") != -1 || ($.browser.msie && $.browser.version === '8.0')) { this.isGecko = true; this.isSupported = true; }
另外,在Firefox和IE8下,如果缓存的数据过大,本人测试,大于20K,存储缓存的速度明显变慢,在刚才代码下加如下代码可解决该问题,原因请高手回答:
//非IE6/7环境下样式使用display:none可加快缓存存储速度 if(this.isGecko) { window.historyStorage.hideStyles = 'display:none'; }
相关文章推荐
- RSH(Really Simple History)---记录ajax的浏览历史
- RSH(Really Simple History)记录ajax的浏览历史
- RSH(Really Simple History)记录ajax的浏览历史
- AJAX 前进后退 (RSH--Really Simple History)
- IcePhp框架的改进:增加了多模块的支持,完善命令行调用
- Tiny框架增加RESTful访问支持
- Tiny框架增加RESTful访问支持
- CocoaPods增加对Swift与iOS 8框架的支持
- Dojo 1.3 beta2 发布,增加对Chrome和IE8的支持
- 学习笔记:APP 瘦身 & 增加bitcode支持编译第三方框架
- 为SimpleCursorAdapter增加CheckBox支持 推荐
- 让IE8支持DOM 2(不用框架!)
- Terracotta提升故障转移支持 增加5个框架的群集功能
- Tiny框架增加RESTful访问支持
- Workerman2.0 框架增加Redis支持
- 往Wildfish框架里面增加SQLite支持
- 编写GO的WEB开发框架 (十六): 增加自动的RESTful支持
- 如何让IE8支持DOM 2(不用框架!)