gpt4 book ai didi

javascript - 使用移动 safari 浏览器时如何防止从缓存中重新加载网页?

转载 作者:可可西里 更新时间:2023-11-01 05:41:02 24 4
gpt4 key购买 nike

Mobile Safari 使用一种特殊的缓存机制 Page Cache ( here ),它基本上使当前页面保持事件状态,但在我们导航到另一个页面时处于休眠状态。这样,当用户按下 back 按钮时,它可以立即显示上一页的最新状态。

这对于导航和浏览网页很有用,但对于特殊情况,这会变得很烦人,因为每次用户导航到该页面时,您可能需要获取该页面的新副本。 (在我的例子中,我必须页面:登录和主页)。

我完全知道没有什么能阻止用户打开同一应用程序的多个选项卡。我不关心那个。

cross browser solution for preventing page from being cached没有帮助,因为 Safari 保持页面打开但不可见和暂停。

window.onpageshow并且处理 event.persisted 没有帮助,因为浏览器似乎由于某些原因第二次没有执行 onpageshow 事件(当您按 back 按钮)。

请注意 对于那些不知道onpageshow 事件是关于什么的人:Apple 不鼓励使用loadunload事件,因为对于 页面缓存 的概念,这些事件没有明确的意义。因此,onpageshow 应该执行我们对 load 事件的期望。

最佳答案

另一种可能的解决方案是查看 event.persisted 标志以确定它是否被缓存:

window.onpageshow = function(event) {
if (event.persisted) {
window.location.reload()
}
};

关于javascript - 使用移动 safari 浏览器时如何防止从缓存中重新加载网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24524248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com