正 文:
有时,我们需要通过js操作cookies,但js文件一般被缓存了,不能实时操作cookies数据了,我们需要禁止js缓存,以便实时的读取数据。方法很简单,加js版本号或时间戳或随机数。
禁止js文件缓存问题是我一直遇到的问题,一个比较好的办法,如下:
document.write("\<script language=\"javascript\" type=\"text/javascript\" src=\"js/piaoyi.js?"+Math.random()+"\"><\/script\>");
类似这种形式:js/piaoyi.js?0.2320100408154456,这样浏览器就会以为每次引用的js文件都是不同的,当然我们的piaoyi.js对后面的动态数并不进行处理。
但是,如果采用随机数的话, js文件将永远得不到缓存,每次都必须重新从服务器加载,即使没有任何更改,大家如果经常上国外网站的话,可以看到他们通常采用这样的方式来解决:
<script src="test.js?ver=113"></script>
其中 ver=113 的 113就是版本号,一般都是采用 CVS 或其他工具生成的开发版本号。
这样真正做到了应该缓存的时候缓存静态文件,当版本有更新的时候从获取最新的版本,并更新缓存。
对于图像 <img src="test.jps?ver=在CVS的版本号"> 来有效利用和更新缓存。