2007年,在一个名为" Mastering The Back Button With Javascript"的帖子中一个叫Patrick Hunlock的人声称只在页面中包含一个onbeforeunload处理程序就会停止缓存。 (我猜浏览器缓存。)他非常强调它:
只是拥有一个unbeforeunload事件处理程序 - 无论它是否实际执行任何操作,无论是否生成对话框,即使整个函数声明完全由{}组成 - 只需< strong>定义一个事件处理程序将阻止页面被缓存 - 永远。
事实上,即使您允许页面缓存,页面也会如此 不要缓存。 拥有onbeforeunload事件意味着该页面将是 每次访问它都会重建。 Javascripts将重新运行, 将重新运行服务器端脚本,该页面将被构建为 即使用户需要,用户也是第一次使用它 只需点击后退或前进按钮即可显示页面。
有趣的是,除了一两个提到Hunlock先生职位的人之外,我无法在其他地方找到任何提及。任何人都可以澄清这个问题吗?这是真的吗,还是我能安全地使用那个事件?
答案 0 :(得分:0)
对于考古学家来说,这被记录为功能introduced in Firefox 1.5。
请注意不要将缓存与浏览器历史记录(也称为商店)混淆-页面元素可能同时包含在其中。如果使用“前进”和“后退”导航按钮(例如,因为该页面显示敏感信息,或者使用Javascript或Ajax调用更改了内容),则期望的行为是强制浏览器从服务器重新加载HTML页面。应该使用Cache-control no-store
,或者最好同时使用no-store
和no-cache
。
进一步阅读: