onbeforeunload处理程序真的会停止我的页面缓存吗?

时间:2014-06-10 15:55:23

标签: javascript caching javascript-events

2007年,在一个名为" Mastering The Back Button With Javascript"的帖子中一个叫Patrick Hunlock的人声称只在页面中包含一个onbeforeunload处理程序就会停止缓存。 (我猜浏览器缓存。)他非常强调它:

  

只是拥有一个unbeforeunload事件处理程序 - 无论它是否实际执行任何操作,无论是否生成对话框,即使整个函数声明完全由{}组成 - 只需< strong>定义一个事件处理程序将阻止页面被缓存 - 永远。

     

事实上,即使您允许页面缓存,页面也会如此   不要缓存。 拥有onbeforeunload事件意味着该页面将是   每次访问它都会重建。 Javascripts将重新运行,   将重新运行服务器端脚本,该页面将被构建为   即使用户需要,用户也是第一次使用它   只需点击后退或前进按钮即可显示页面。

有趣的是,除了一两个提到Hunlock先生职位的人之外,我无法在其他地方找到任何提及。任何人都可以澄清这个问题吗?这是真的吗,还是我能安全地使用那个事件?

1 个答案:

答案 0 :(得分:0)

对于考古学家来说,这被记录为功能introduced in Firefox 1.5

请注意不要将缓存与浏览器历史记录(也称为商店)混淆-页面元素可能同时包含在其中。如果使用“前进”和“后退”导航按钮(例如,因为该页面显示敏感信息,或者使用Javascript或Ajax调用更改了内容),则期望的行为是强制浏览器从服务器重新加载HTML页面。应该使用Cache-control no-store,或者最好同时使用no-storeno-cache

进一步阅读: