不同浏览器处理后退的一些异同

以前在测试自己写的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”。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 有许多图形处理库和图像处理库,这些库之间有很多差异和相似之处。下面是一些常见的 Python 图形处理库和图像处理库的异同点: 1. OpenCV:OpenCV 是一个开源的计算机视觉库,支持图像处理、计算机视觉和机器学习等领域。它主要用于处理实时视频流和图像处理。OpenCV 提供了许多函数和类,可以用于图像处理、特征提取、目标跟踪、人脸检测和识别等。 2. Pillow:Pillow 是 Python 中一个流行的图像处理库,是 PIL(Python Imaging Library)的一个分支。它提供了基本的图像操作,如打开、保存、裁剪、缩放、旋转和转换格式等。 3. Matplotlib:Matplotlib 是一个用于绘制二维图形的 Python 库。它提供了许多绘图选项,如线图、散点图、条形图、饼图和等高线图等。 4. Seaborn:Seaborn 是一个基于 Matplotlib 的 Python 数据可视化库,它提供了更高级的统计图形,如分布图、热力图、时间序列图和多变量图等。 5. Pygame:Pygame 是一个用于制作游戏和多媒体应用程序的 Python 库。它提供了音频、图像和视频处理等功能,可以用于制作基于 Python 的游戏和交互式应用程序。 这些 Python 图形处理库和图像处理库之间的异同点主要包括以下方面: 1. 功能:每个库都有其独特的功能和应用场景。例如,OpenCV 主要用于计算机视觉和实时视频流处理,而 Pillow 更适合于简单的图像处理和格式转换。 2. 学习曲线:每个库的学习曲线不同。有些库可能更容易上手,而有些则需要更多的学习和实践。 3. 依赖关系:一些库可能依赖于其他库或模块。例如,Matplotlib 和 Seaborn 都依赖于 NumPy 和 Pandas。 4. 性能:不同的库可能在性能方面有所不同。一些库可能更适合于处理大型数据集,而另一些则更适合于处理实时视频流。 总之,选择哪个库主要取决于你的需求和应用场景。在选择之前,需要考虑功能、学习曲线、依赖关系和性能等因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值