Firefox和opera有一个特性,往返缓存:可以在用户使用浏览器的后退和前进按钮时加快页面的转换速度,这个缓存不仅保存了页面的数据,还有DOM和JavaScript的状态。

为了更形象的说明bfcache的行为,Firefox提供了新事件:

虽然这些事件的目标是document,但是必须把事件处理程序添加到window上。

实例:

(function(EventUtil){
var showCount = 0;
EventUtil.addHandler(window, 'load', function(){
alert('Load fired');
});
EventUtil.addHandler(window, 'pageshow', function(event){
event = EventUtil.getEvent(event);
showCount++;
alert('Show has been fired '+showCount + ' times. '+event.persisted);
});
})(EventUtil)

pageshow定义和用法

onpageshow 事件在用户浏览网页时触发。

onpageshow 事件类似于 onload 事件,onload 事件在页面第一次加载时触发, onpageshow 事件在每次加载页面时触发,即 onload 事件在页面从浏览器缓存中读取时不触发。

为了查看页面是直接从服务器上载入还是从缓存中读取,你可以使用 PageTransitionEvent 对象的 persisted 属性来判断。 如果页面从浏览器的缓存中读取该属性返回 ture,否则返回 false

pagehide定义和用法

onpagehide 事件在用户离开网页时触发。

离开网页有多种方式。如点击一个链接,刷新页面,提交表单,关闭浏览器等。.

onpagehide 事件有时可以替代 onunload 事件,但 onunload 事件触发后无法缓存页面。

为了查看页面是直接从服务器上载入还是从缓存中读取,你可以使用 PageTransitionEvent 对象的 persisted 属性来判断。 如果页面从浏览器的缓存中读取该属性返回 ture,否则返回 false 。

不支持冒泡

指定了onunload事件的处理程序的页面会被自动排除在bfcache之外,即使事件处理程序是空的,原因在于:onunload最常用撤销onload中所执行的操作,而跳过onload后再次显示页面很可能就会导致页面不正常

最新文章

  1. MVC中使用[ValidateAntiForgeryToken]防止CSRF 注入攻击
  2. Win7-64bit系统下安装mysql的ODBC驱动
  3. 常见的文件上传方法有哪些?Ajax文件上传原理是什么?
  4. oracle命令识记
  5. Yii javascript 的结合 账号禁用 激活 的设置。
  6. NYOJ-214 单调递增子序列(二) TLE 分类: NYOJ 2014-01-28 22:57 171人阅读 评论(0) 收藏
  7. (转)JavaScript 开发者经常忽略或误用的七个基础知识点
  8. Foundation Sorting: Single List Insertion Sort
  9. NOIP2010-普及组初赛C语言解析
  10. Emmet 快速编写html代码
  11. [转]从入门到精通: 最小费用流的“zkw算法”
  12. future then
  13. Day23--Python--常用模块02--序列化,configparser
  14. CODEVS.3990.中国余数定理2(CRT)
  15. PCA 降维
  16. 【转】【Python】 python中的编码问题报错 'ascii' codec can't decode 及 URL地址获取中文
  17. (转)Elasticsearch分析聚合
  18. Redis为什么是单线程
  19. java的日期格式化
  20. [KVM][guestfs] 安装 guestfs-python 出错

热门文章

  1. VS2008水晶报表变两页(重装系统后)
  2. java 基础之--java动态代理
  3. Bootstrap(7) 输入框和导航组件
  4. php5.6 版本出现 Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version 的错误
  5. 异常处理 day 30
  6. u-boot之ARM920T的start.S分析
  7. HTML标签归纳
  8. json等序列化模块 异常处理
  9. mysql 5.17 的update失败问题
  10. UOJ 67 新年的毒瘤 - Tarjan