我试图为浏览器整理一个脚本,以确定它加载的页面是来自bfcache还是来自服务器。我99%肯定bfcache是问题,因为我所见到的所有其他问题都引用了bfcache作为问题。
这是相关的,因为bfcache页面"冻结"我正在处理的网站上的JavaScript状态(我没有编写这些脚本,我是JavaScript业余爱好者),如果你使用后退按钮返回页面,脚本不起作用。但是,如果按下刷新按钮,它们的工作正常。
这是我尝试解决这个问题:
<body onload="noBFC()" onpageshow="checkCache()">
// Lots of HTML content
<script type="text/javascript">
function checkCache(){
if (cached == true){
location.reload(true);}
};
var cached = "";
function noBFC(){
cacheCheck = false;
};
window.onunload() {
cacheCheck = true;
};
</script>
理由是,只要用户离开页面,window.onunload()
就会将变量cached
设置为布尔值&#34; true&#34;,表示它已被bfcache缓存。
然后,只要再次使用onpageshow
显示页面,脚本就会检查该变量。如果它&#34; true&#34;,它会强制重新加载页面,其值cached
设置为&#34; false&#34;。
有什么容易的,我在语法上错过了,或者这不是一个可行的解决方案?
答案 0 :(得分:0)
尝试将随机查询附加到位置字符串。
window.location = location.href + '?random=' + 1234;