首页 新闻 会员 周边 捐助

网站对于客户端的JS.CSS 这些文件缓存问题

1
悬赏园豆:50 [已解决问题] 解决于 2016-03-23 11:25

我们都知道 发布网站后 客户的游览器会缓存我们网站的部分资源

JS.CSS啊 图片什么的

 

但是当我们网站更新后 有时候无论怎么刷新都不能拿到最新的资源 于是有了这种解决办发

www.dadsa.js?t=123

我们在资源文件后面加上参数  是一种解决办发  但是每次都要加很麻烦 而且会忘记

 

现在作为大神的你 有没有更好的解决方案?  期待回答

skin33的主页 skin33 | 初学一级 | 园豆:110
提问于:2016-03-22 11:43
< >
分享
最佳答案
-1

客户端缓存是为了加快访问速度,相同的资源不用每次都去服务器端获取。

如果你考虑下来的确不要缓存,有几种办法

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. 在访问的资源后面加一个变量,变量放在配置文件里面或是数据库里

推荐用第三种方法

收获园豆:50
Rich.T | 老鸟四级 |园豆:3440 | 2016-03-22 13:17

不使用缓存会造成速度过慢 目前好像稚嫩使用 随机数法了

skin33 | 园豆:110 (初学一级) | 2016-03-22 13:20

@skin33: 第三种吧,一加随机数就没不缓存了,每次访问都会去服务器重新获取

Rich.T | 园豆:3440 (老鸟四级) | 2016-03-22 13:22

@skin33: 如www.abc.com/js/a.js?v=20160101这样

V的值放在配置文件里面或是数据库都行

Rich.T | 园豆:3440 (老鸟四级) | 2016-03-22 13:23

@Rich.T: 我知道一直也是这么做的  只是想想还有没有其它方案

skin33 | 园豆:110 (初学一级) | 2016-03-22 13:24

@skin33: 有啊,把你的静态资源都扔到cdn上去,然后发布的时候刷新cdn缓存,即减少了你的服务器压力,又能很方便的操作

Rich.T | 园豆:3440 (老鸟四级) | 2016-03-22 13:28
其他回答(2)
0

2种方法

一种是写随机码

T=随机码.

二是你在配置文件里面写个版本号

每次发布 你在配置文件里面改版本号

T=版本号的

 

晋升中的FE | 园豆:519 (小虾三级) | 2016-03-22 11:48

没有都要改 很麻烦  有个想法 能不能在请求的时候做些处理 ?比如 我网站检测到访问的是JS  就自动加上随机码 或者标识  然后让客户端去访问这个新的返回?

支持(0) 反对(0) skin33 | 园豆:110 (初学一级) | 2016-03-22 11:51

@skin33: 没试过 一般公司都用的是我说的那两种方法. 只用写一次就不用改了.这样做也不会影响网站性能.

你说的那种其实 代码量反而大了 .JSS CSS 基本都是放在母版页的

支持(0) 反对(0) 晋升中的FE | 园豆:519 (小虾三级) | 2016-03-22 11:56
0

'www.dadsa.js?t=' + Math.random()

刘宏玺 | 园豆:14020 (专家六级) | 2016-03-22 12:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册