我们都知道 发布网站后 客户的游览器会缓存我们网站的部分资源
JS.CSS啊 图片什么的
但是当我们网站更新后 有时候无论怎么刷新都不能拿到最新的资源 于是有了这种解决办发
www.dadsa.js?t=123
我们在资源文件后面加上参数 是一种解决办发 但是每次都要加很麻烦 而且会忘记
现在作为大神的你 有没有更好的解决方案? 期待回答
客户端缓存是为了加快访问速度,相同的资源不用每次都去服务器端获取。
如果你考虑下来的确不要缓存,有几种办法
1.在head里面加入
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=8"> <meta http-equiv="Expires" content="0"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-control" content="no-cache"> <meta http-equiv="Cache" content="no-cache">
2. 在访问的资源后面加随机数
3. 在访问的资源后面加一个变量,变量放在配置文件里面或是数据库里
推荐用第三种方法
不使用缓存会造成速度过慢 目前好像稚嫩使用 随机数法了
@skin33: 第三种吧,一加随机数就没不缓存了,每次访问都会去服务器重新获取
@skin33: 如www.abc.com/js/a.js?v=20160101这样
V的值放在配置文件里面或是数据库都行
@Rich.T: 我知道一直也是这么做的 只是想想还有没有其它方案
@skin33: 有啊,把你的静态资源都扔到cdn上去,然后发布的时候刷新cdn缓存,即减少了你的服务器压力,又能很方便的操作
2种方法
一种是写随机码
T=随机码.
二是你在配置文件里面写个版本号
每次发布 你在配置文件里面改版本号
T=版本号的
没有都要改 很麻烦 有个想法 能不能在请求的时候做些处理 ?比如 我网站检测到访问的是JS 就自动加上随机码 或者标识 然后让客户端去访问这个新的返回?
@skin33: 没试过 一般公司都用的是我说的那两种方法. 只用写一次就不用改了.这样做也不会影响网站性能.
你说的那种其实 代码量反而大了 .JSS CSS 基本都是放在母版页的
'www.dadsa.js?t=' + Math.random()