Page Cache
(这里),当我们导航到另一个页面时,它基本上会保持当前页面处于活动状态但休眠。这样,当用户按下返回
按钮时,它可以立即显示先前页面的最新状态。
这对于导航和浏览网页很有用,但对于特殊情况来说却很烦人,因为每次用户导航到该页面时,您可能需要获取页面的新副本。(在我的情况下,我有两个页面:登录页面和主页面)。
我完全知道没有什么可以防止用户打开同一应用程序的多个选项卡。我不担心那个。
跨浏览器解决方案以防止页面被缓存对此无济于事,因为Safari会保持页面处于打开但不可见和暂停状态。
window.onpageshow和处理event.persisted
并不能帮助解决问题,因为似乎浏览器第二次(当您按下back
按钮时)不执行onpageshow
事件的某些原因。
注意:对于那些不知道onpageshow
事件是什么的人:苹果不鼓励使用load
和unload
事件,因为在页面缓存的概念下,这些事件没有明确的意义。因此,onpageshow
应该做我们从load
事件中期望的事情。
window.location.reload()
,而要写成$body.append("<script type='text/javascript'>window.location.reload();<\/script>")
? - Michael Cordingleywindow.location.reload
它不起作用。(之前没有起作用)如果我没记错,Safari 无法正确加载页面或者会丢失整个重新加载。我们需要在页面恢复挂起后运行脚本。 - Bakhshi