小编典典

单击“后退”按钮时,防止从缓存加载野生动物园

javascript

单击“后退”按钮时,Safari浏览器加载旧的youtube视频时出现问题。我尝试将onunload=“”此处提到[防止Safari5中的后退按钮缓存添加到body标签,但是在这种情况下不起作用。

有什么方法可以防止从某个页面的缓存中加载safari?


阅读 255

收藏
2020-05-01

共1个答案

小编典典

您的问题是由后退缓存引起的。当用户离开时应该保存页面的完整状态。当用户使用后退按钮导航时,可以非常快地从缓存中加载页面。这与仅缓存HTML代码的普通缓存不同。

为bfcache加载页面时,onload不会触发事件。相反,您可以检查事件的persisted属性onpageshow。初始页面加载时将其设置为false。从bfcache加载页面时,将其设置为true。

Kludgish解决方案是在从bfcache加载页面时强制重新加载。

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

如果您使用的是jQuery,请执行以下操作:

$(window).bind("pageshow", function(event) {
    if (event.originalEvent.persisted) {
        window.location.reload() 
    }
});
2020-05-01