使用后退按钮时如何防止Safari ios移动缓存?

时间:2013-09-16 18:04:08

标签: javascript html safari mobile-safari

当用户点击“后退”按钮时,Safari和Safari ios mobile会使用bfcache。返回上一个html页面。没有其他浏览器移动或桌面具有我能找到的这种行为。我用Google搜索并发现许多人抱怨同样的事情,但没有任何解决方案与Safari ios。我确实找到了Safari桌面的这个修复程序(在Windows上测试过)但它不适用于Safari ios。

 window.onbeforeunload = function()
  {
    // This function does nothing.  It won't spawn a confirmation dialog
    // But it will ensure that the page is not cached by the browser.
  };

  window.onunload = function()
  {
    // Needed in OP in order to avoid caching. May also be needed in Safari.
  };

有人知道如何为Safari ios做这件事吗?

我想要这样做的原因是,在进入下一个网页之前,我在某些情况下显示了微调器指示符和模态。如果用户单击后退按钮,Safari ios将使用缓存,并且微调器和/或模态仍然存在。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

window.onbeforeunload回调中隐藏微调器div是什么意思?浏览器缓存实际上很酷......

答案 1 :(得分:0)

您可以使用此功能检测pageshow事件。 pageshow告诉你它是否来自bfcache。

参考:https://developer.mozilla.org/en-US/docs/Working_with_BFCache

window.addEventListener('pageshow', function(event) { 
  doSomething(); 
}

https://developer.mozilla.org/en-US/docs/Working_with_BFCache