日期:2014-05-17  浏览次数:20727 次

急急急!!!!客户端缓存问题求解
今天调查一个问题,是关于客户端缓存的问题。
有一个项目是分很多次导入的,每次导入的时候都改动了部分js代码和其他代码,但是导入后客户那边反应画面没有变化。
经调查发现是缓存的问题,也就是每次导入后,都需要客户清理下缓存。

挺麻烦的,客户要求代码解决这个问题。

首先不能禁止缓存,总共想到两个方案。
第一个方案经测试可行,但是有点麻烦,就是在改动的js后面加个小尾巴,不详细说了。
第二个方案是 加了这么一句话 
response.setHeader("Last-Modified","THU,29 Agu 2013 4:03 GMT");

测试发现ie没问题,但是chrome有问题,还是访问缓存。调查的结果发下图。

If-Modified-Since和Last-Modified不一样,但是chrome还是访问的缓存,求高手帮忙!!!!!
web缓存,web,Java?Web ,Java

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

试试这样,显式告诉客户端不要进行缓存
response.setHeader("cache-control", "no-cache");
response.setHeader("pragma", "no-cache");

不能直接禁止缓存的,这样的话每次都加载,太慢了。只是导入的时候,第一次访问不取缓存的内容,之后还是可以取缓存的。禁止缓存,太影响速度了,每次都加载。


靠,居然无视我, 浏览器按Ctrl+F5强制刷新,就会重新从服务端下载文件了。


客户他们不习惯刷新操作。。。。所以要求代码解决


那你就给文件名加上版本号,每次修改后修改版本号,这样客户端就会自动下载了。

如果文件名相同,url地址一致,流浪器都会先在本地的临时文件夹里找的~
------解决方案--------------------
把JS部分写到JSP里,页面使用jsp:include标签引入,不要使用script方式引入