单击后退按钮时,Safari 加载旧的 youtube 视频时出现问题。我曾尝试将 onunload=""(此处提到 Preventing cache on back-button in Safari 5 )添加到 body 标签,但在这种情况下不起作用。
有什么方法可以防止从某个页面上的缓存加载 safari?
最佳答案
您的问题是由 back-forward cache 引起的.它应该在用户离开时保存页面的完整状态。当用户使用后退按钮返回页面时,可以非常快速地从缓存中加载页面。这与仅缓存 HTML 代码的普通缓存不同。
当为 bfcache 加载页面时 onload
事件不会被触发。相反,您可以检查 onpageshow
事件的 persisted
属性。它在初始页面加载时设置为 false。当页面从 bfcache 加载时,它被设置为 true。
笨拙的解决方案是在从 bfcache 加载页面时强制重新加载。
window.onpageshow = function(event) {
if (event.persisted) {
window.location.reload()
}
};
如果您使用的是 jQuery,那么请执行以下操作:
$(window).bind("pageshow", function(event) {
if (event.originalEvent.persisted) {
window.location.reload()
}
});
关于javascript - 单击后退按钮时防止从缓存中加载 Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8788802/