浏览器加载JS和CSS表面上看起来是很清楚的顺序加载,可是其中还是有很多的莫名其妙的东西。
浏览器缓存!!!!
我们是做产品的,采用B/S结构,使用了大量的JS和CSS。
每当产品出现Bug,或者升级的时候就会给客户发一个Patch(包含了JS,CSS,IMG,JAVA等等)
然后客户重启服务.
很沮丧!!
由于浏览器的缓存问题(我猜是)
导致了原有的(但是有修改)JS和CSS还是加载的旧的代码,没有把新打入的文件加载上,要强制的刷新,才会载入新的文件。
甚至有时候不去加载新的文件,旧的都不加载了。
CSS更是,导致的页面面目全非。
请问,大家碰见过这种问题吗?
还有,如何能让浏览器主动加载新的文件呢,别说改文件名哦!
最好也别不让用户开启缓存,由于加载的东西很多,要是有缓存还是很有用的。
特别是打完patch后,第一次重启,一定会出错,如何解决呢,帮解决了给高分哦!
[b]问题补充:[/b]
[quote]
而liuqiu的做法,导致整个页面不缓存,感觉划不来吧。
[/quote]
的确,如果强制不允许缓存是划不来的,因为加载的JS和CSS很多,缓存还是能很好的提高访问效率的;
[code="java"]
<br> [/code]</p> <p>这种方法每次后面的字符串是不同的,问一下,那是去找缓存还是去下载新的啊?<br> 还是只在打patch时候新的文件才去加这个呢?</p>
[quote]浏览器缓存!!!![/quote]
你就让它不能缓存呗,由于你新部署的js,css文件和先前的文件名一样,所以浏览器将其缓存了。
可以这样解决:
[/code]
而liuqiu的做法,导致整个页面不缓存,感觉划不来吧。
估计侬是做java的,rails中不会有这种问题。
jsp参考
response.setHeader("Pragma","No-Cache");
response.setHeader("Cache-Control","No-Cache");
response.setDateHeader("Expires", 0);
[quote]这种方法每次后面的字符串是不同的,问一下,那是去找缓存还是去下载新的啊?
还是只在打patch时候新的文件才去加这个呢? [/quote]
是到web服务器上去下载新的文件。