Safari hat Probleme beim Laden alter YouTube-Videos, wenn auf die Schaltfläche „Zurück“ geklickt wird. Ich habe versucht, onunload="" (hier erwähnt: Verhindern des Caches auf der Zurück-Schaltfläche in Safari 5) zum Body-Tag hinzuzufügen, aber es funktioniert in diesem Fall nicht.
Gibt es eine Möglichkeit zu verhindern, dass Safari aus dem Cache einer Seite geladen wird?
所有这些答案都有点破解。在现代浏览器(safari)中,仅在
onpageshow
解决方案上有效,但在慢速设备上,有时您会在重新加载之前看到一瞬间之前的缓存视图。处理这个问题的正确方法是在服务器响应上正确设置 Cache-Control ,如下所示
'缓存控制','无缓存,max-age=0,必须重新验证,无存储'
您的问题是由后退缓存引起的。当用户离开时,它应该保存页面的完整状态。当用户使用后退按钮导航回来时,可以非常快速地从缓存加载页面。这与仅缓存 HTML 代码的普通缓存不同。
当bfcache加载页面时,
onload
事件不会被触发。相反,您可以检查onpageshow
事件的persisted
属性。它在初始页面加载时设置为 false。当页面从 bfcache 加载时,它被设置为 true。Kludgish 的解决方案是在从 bfcache 加载页面时强制重新加载。
如果您使用 jQuery,则执行以下操作: