以前在测试自己写的webim时发现firefox有一个很人性化的特性:在页面上跟别人聊天的时候如果不小心点到了本页打开的链接,只要点一下 Firefox的后退按钮,就会退后到之前的页面,可以接着聊。也就是说在firefox中点击后退,原来页面的状态会还原,包括JS改变的DOM结构也会保持。
我们用下面的代码来测试一些常见的浏览器是怎么处理后退的。测试的浏览器有IE8beta2、Firefox3.0.1、Flock1.2.4(Firefox2.0.0.16内核)、Safari3.1(window版)、Opera9.60。
<a href="http://www.baidu.com">百度</a>
<div id="a1"></div>
<script type="text/javascript">
window.onload = function(){
alert("load");
var i = 1;
setInterval(function(){
document.getElementById("a1").innerHTML = i++;
},500);
};
</script>
测试结果:IE8点后退时会触发之前页面的window.onload事件,计数器回到初始状态重新计数;Opera9.6后退时不会触发前一个页面的window.onload事件,但定时器停止运行;其它浏览器后退时都不会触发前一个页面的window.onload事件,定时器会接着之前的状态继续计数。
结论:Firefox、Opera、Safari在这方面都做得比较人性化,完全的保留了页面unload时的状态,估计是直接从内存中读取缓存数据,所以后退速度相当快;其中Opera9.6会导致计数器停止,可能是个bug。IE在后退时则会回到最初状态,之前JS改变的DOM不复存在。
如果想让非IE浏览器退后时也能触发window.onload事件呢?这篇文章提到了解决方案。其实就是在页面是加入:
window.onunload = function(){};
经测试,此方法可行。对于其中的原理,JK给出了如下解释:
FF/Safari等会努力做得很理想(完完全全的保持上次的unload时的信息),不过,如果他认为用户的代码(典型的是在onunload里)会破坏他的理想计划时,他就退一步,把“后退”当作“后退+reload”。
分享到:
相关推荐
webwork与struts处理上的异同(1) .txt webwork与struts处理上的异同(1) .txt
详细讲述了perl的优势,用法和python的区别。
“视同销售”在增值税、所得税及会计处理上的异同.doc
浅析Oracle和Microsoft SQL Server事务处理的异同.pdf
[异同,税务,行为]混合销售与兼营行为的异同及税务处理探析.docx
试比较企业债务重组会计与所得税税务处理之异同点.doc
ArcGIS 中各种合并要素的异同点分析 ArcGIS 中将两个要素类合并成一个要素有 Union、Dissolve...* union 则灵活一些,可以对不同图层的要素进行操作,新生要素在目标图层中产生 * append 一般拿来用于将多个要素类合并
2001年的时候,Dare Obasanjo写过一篇文章,名为《论C#与Java之异同(Comparison of Microsoft's C# Programming Language to Sun Microsystems' Java Programming Language)》,该文以其详尽与精确成为了同类文章...
1、 LMS算法与RLS算法有何异同点? 2、 自适应均衡器可以采用哪些最佳准则
单片机C语言与C高级程序设计语言的异同.
强悍的文件比较工具,能迅速的比较出两个文件的异同。
贾政和贾宝玉异同论.zip
一款功能强大的文件异同查找工具。它能快速逐行比较两个文件,并将不同的地方标识出来供您参考,可适用于任意类型的文件,您不妨下栽试试^_^
概括内容要点,比较材料异同.ppt
混合销售与兼营行为的异同及税务处理探析.doc
混合销售与兼营行为的异同及税务处理探析.docx
excel异同比较excel异同比较excel异同比较excel异同比较excel异同比较excel异同比较excel异同比较
查找两列数据异同.xlsm 标记颜色
本书结合大量范例与实际应用的实例,详细介绍了W3C发布的层叠样式表CSS 2.1规范,浏览器对于CSS 2.1规范解释的异同,以及使用XHTML和层叠样式表对网页进行结构化与美化的实际制作方法。本书内容由浅入深,不仅介绍...
2020快抖B营销策略异同洞察