我注意到我的网络应用上浏览器后退按钮使用的一个常见错误,在注销后点击后退按钮加载用户出现登录的缓存页面(虽然它们实际上并非如此)。
我找到了很多helpful questions with helpful answers并使用了建议的修复人员,包括标题中建议的Cache-Control选项的每个组合:
('Cache-Control', 'no-cache, no-store, must-revalidate, max-age=0, max-stale=0')
标题适用于大多数浏览器,即使只有no-cache和no-store,但没有标题选项可以解决这个问题。
果然,我可以找到解决这个问题的最可靠的方法是使用一些强制重新加载的javascript:
<script>
window.onpageshow = function(event) {
if (event.persisted) {
window.location.reload();
}
};
</script>
上方的javascript块有效,但前提是用户未通过Safari禁用javascript - &gt;偏好 - &gt;安全性随后点击后退按钮。这是一个非常优秀的边缘案例,但是我很有吸引力的是,这样一个受欢迎的浏览器制作这样一个微不足道的bug这个很棘手!
如果有人找到了一种方法,让Safari在没有javascript的情况下玩得很好,我很乐意听到。提前谢谢!