如何刷新用户浏览器缓存内JS?
遇到个问题,网站上有很多页面,所以挂了一个固定的监控js,然后每次我们更新这个js的时候问题就出现了,很多用户都缓存了这个JS 。所以我们修改的不会起效果,因此会丢失大量的数据。而每次更新都让网站修改js地址的话,工作量巨大。。。亲们 有啥好的办法么?跪求~~~
------解决方案--------------------更新时在url上加上版本号
如
src="xxx.js?version=1.5"
------解决方案--------------------
可以用服务端变量,该变量从xml或数据库中读取,这样就可以动态配置
------解决方案--------------------
+++++++++++10086
------解决方案--------------------更新时在url上加上版本号
如
src="xxx.js?version=1.5"
动态输出罗,按照1#的加个时间戳,这样每次都从服务器加载
<script>
document.write('<script src="xxx.js?_dc='+new Date().getTime()+'"><\/script>')
</script>
------解决方案--------------------原来可这样的。我一直以为只有服务器才干这事情。
更新时在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就不会变
每次请求页面都会读配置文件的事怎么可能会发生
实在不行,你把它写进缓存总可以吧