日期:2014-05-16  浏览次数:20482 次

如何刷新用户浏览器缓存内JS?
遇到个问题,网站上有很多页面,所以挂了一个固定的监控js,然后每次我们更新这个js的时候问题就出现了,很多用户都缓存了这个JS 。所以我们修改的不会起效果,因此会丢失大量的数据。而每次更新都让网站修改js地址的话,工作量巨大。。。亲们 有啥好的办法么?跪求~~~
js 缓存

------解决方案--------------------
更新时在url上加上版本号
如 
src="xxx.js?version=1.5"
------解决方案--------------------
引用:
嗯,是的,想到了这个。但是每次上线 都需要修改这个版本号么?

可以用服务端变量,该变量从xml或数据库中读取,这样就可以动态配置
------解决方案--------------------
引用:
Quote: 引用:

嗯,是的,想到了这个。但是每次上线 都需要修改这个版本号么?

可以用服务端变量,该变量从xml或数据库中读取,这样就可以动态配置


+++++++++++10086

------解决方案--------------------
引用:
更新时在url上加上版本号
如 
src="xxx.js?version=1.5"


动态输出罗,按照1#的加个时间戳,这样每次都从服务器加载

<script>
document.write('<script src="xxx.js?_dc='+new Date().getTime()+'"><\/script>')
</script>

------解决方案--------------------
原来可这样的。我一直以为只有服务器才干这事情。


引用:
Quote: 引用:

更新时在url上加上版本号
如 
src="xxx.js?version=1.5"


动态输出罗,按照1#的加个时间戳,这样每次都从服务器加载

<script>
document.write('<script src="xxx.js?_dc='+new Date().getTime()+'"><\/script>')
</script>


------解决方案--------------------
引用:
我想的是 有没有一种方法,可以我改了一次后,用户就强刷一次JS,然后继续缓存。如果加了时间戳,每次都从服务器加载,受不了哇。。。全站每日PV 700w+  =.+!~ 快被缓存坑死了。


这个就没办法了,缓存是浏览器管理的,一般来说缓存比较严重的是IE,firefox只要按F5就会自动检查是否有最新文件,最新的就重新下载

如果通过搜藏夹或者浏览器地址栏的autocomplete进入的,就没办法了。
------解决方案--------------------
哦,原来还可以受不了的。
那就都搞个函数,设定用时间戳的时候。
------解决方案--------------------
引用:
我想的是 有没有一种方法,可以我改了一次后,用户就强刷一次JS,然后继续缓存。如果加了时间戳,每次都从服务器加载,受不了哇。。。全站每日PV 700w+  =.+!~ 快被缓存坑死了。

加版本号即可达到,至于服务器压力问题,可以从服务端想到多种解决方案
1.session缓存,这样每次访问初始取一次版本号
2.xml文件保存,xml的访问速度比数据库快很多
3.静态变量缓存,直接从内存中获取版本号,速度就不用说了,不过需要做一个后台页面负责更新此变量
------解决方案--------------------
你的版本号存在于一个配置文件内,每次更新的时候修改一下就行了

只要你的版本号不变,用户请求的url就不会变

每次请求页面都会读配置文件的事怎么可能会发生

实在不行,你把它写进缓存总可以吧