避免缓存
缓存是浏览器的功能特性,不是 bug
,为了增强用户体验,浏览器一般都会把网页上所需的静态文件缓存到本地,再次刷新的时候则无需再重新加载
但是我们有时候就是不需要浏览器缓存这些文件,而是每次都从服务器端读取数据,可以用以下做法:
使用 js
配合 mate
标签及文件版本号,实现避免浏览器缓存
<meta HTTP-EQUIV="pragma" CONTENT="no-cache">
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-store, must-revalidate">
<meta HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
<meta HTTP-EQUIV="expires" CONTENT="0">
<link href="reset.css?v=20210707" rel="stylesheet">
if (window.name) {
const str = Math.random().toString(36).substr(2);//随机字符串
window.location.href += '?S=' + str;//兼容微信浏览器刷新
window.name = 'isreload';
}
注 - 微信缓存解决办法:
微信内置浏览器会将整个 html
文件进行缓存,所以上述方法也就失效了(html
都是缓存下来的,不是最新的代码)
解决办法:在跳转路径后面加个参数,例如 https://aaa.com/index.html?v=123