对于IE缓存的数据,有动态文件,也有静态文件。
对于动态文件,比如 index.asp?id=...,或index.aspx?id=...,禁止浏览器缓存数据的方法,网上多有介绍。
但是对于静态文件(css、jpg、gif等),什么情况下需要禁止浏览器缓存它些页面呢?
方法一:Dojo中,可以用简单的方法完成。
在dojo.xhrGet(包括post)等方法中都包含preventCache属性,此属性的含义:“默认为启用浏览器缓存,否则将通过自动增加不同的参数来确保浏览器缓存失效”。
只要把此属性赋值为:“true”即可。
方法二:随机数。
document.write("<script src='test.js?rnd="+Math.random()+"'></s"+"cript>");
方法三:随机数+动态赋值。
var js=document.createElement("script"); js.src="test.js"+Math.random(); document.body.appendChild(js);
但是,如果采用随机数的话,js文件将永远得不到缓存,每次都必须重新从服务器加载,即使没有任何更改。很多国外网站,采用这样的方法解决:
<script src="test.js?ver=113"></script>
其中 ver=113 的 113就是版本号,一般都是采用 CVS 或其他工具生成的开发版本号。
如此,便真正做到了应该缓存时缓存静态文件,当版本有更新时会重新获取最新的版本,并更新缓存。
对于图像 <img src="test.jps?ver=在CVS的版本号">,则可以有效利用与更新缓存。