location.reload() 的一次采坑问题记录
发布时间:2020-09-08
浏览量: 2304
文章分类: 前端相关
先说一下遇到的问题,这个站点是我自己手写的前端页面,我在前端这块属于爱好,属于自学爱好者。
背景:我的博客更新的比较频繁,有朋友打开以后出现了样式不对问题的。(其实原因就是css没有更新)
通过书上学的,我第一时间就想到了location.reload(true),让页面打开的时候从服务器重新加载一次。
说搞就开搞了,第一版本大概就是如下
window.onload = function(){
location.reload(true);
}
写完我好觉得学习就是好,实现也很简单,果然很快就解决了。但是本地测试的时候,发现我只要打开页面,页面开始了无限刷新模式。很快CPU就扛不住了。
上面的是问题的背景
通过大佬的讲解,我已经完全理解了这个问题是多么的没脑子了。哈哈哈哈,所以还是备忘一下
- 页面打开,进入
window.onload->重新加载页面 - 然后重新加载,页面刷新了,在进入
window.onload->重新加载页面 - ....开启无限循环模式
道理大概就是上面的这个道理,主要的问题应该还是对JavaScript不熟,我在网上搜了一下,很多新人也都有这样的问题,所以还是发个文章备忘一下,希望大家可以理解这个问题。
那么解决的方案就比较多了。比如我现在更新的比较频繁,但是我也不确定我都是什么时间更新,那么我可以在本地写入一个标签。可以使用window.localStorage.setItem来操作,然后每次打开页面,我的逻辑大概如下
- 先尝试取值,如果获取不到就在本地在写入一个标识和时间戳并强制刷新
- 如果获取到了就判断时间戳和现在的时间是否是超过了24小时,如果超过了,就更新时间戳,在强制刷新即可