我注意到我的网络应用程序中浏览器后退按钮使用的一个常见错误,在登出后点击后退按钮加载用户出现登录的缓存页面(尽管它们实际上并非如此).
我找到了很多有用的问题和有用的答案,并使用了建议的修复人员,包括标题中建议的Cache-Control选项的每个组合:
('Cache-Control', 'no-cache, no-store, must-revalidate, max-age=0, max-stale=0')
Run Code Online (Sandbox Code Playgroud)
并且标题适用于大多数浏览器,即使只有no-cache和no-store,但没有标题选项可以在Safari上解决这个问题.
果然,我可以找到解决这个问题的最可靠的方法就是使用一些强制重新加载的javascript:
<script>
window.onpageshow = function(event) {
if (event.persisted) {
window.location.reload();
}
};
</script>
Run Code Online (Sandbox Code Playgroud)
上面的javascript块确实有效,但前提是用户不通过Safari - > Preferences - > Security禁用javascript,然后点击后退按钮.这是一个非常优秀的边缘案例,但我有点着迷,这样一个流行的浏览器制作这样一个微不足道的bug这个棘手!
如果有人找到了一种方法,让Safari在没有javascript的情况下玩得很好,我很想听听.提前谢谢!