對於動態文件,比如 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的版本號"> 來有效利用和更新緩存.