本文為大家詳細介紹下js中自動清除ie緩存的幾種方法
大家可以根據自己的需求自由選擇適合自己的
希望對大家學習js有所幫助
js中自動清除ie緩存方法 — 常用
對於動態文件比如 indexasp?id= 或者 indexaspx?id= 相信有經驗的程序員都知道怎樣禁止浏覽器緩存數據了
但是對於靜態文件(cssjpggif等等) 在什麼場合下面我們需要禁止浏覽器緩存他們怎麼做?
方法一Dojo中我們可以用簡單的方法完成在dojoxhrGet(包括post)等方法中都包含preventCache屬性此屬性的含義 “默認為啟用浏覽器緩存否則將通過自動增加不同的參數來確保浏覽器緩存失效” 我們只要把此屬性賦值為“true”即可
方法二documentwrite("
其中 ver= 的 就是版本號一般都是采用 CVS 或其他工具生成的開發版本號
這樣真正做到了應該緩存的時候緩存靜態文件當版本有更新的時候從獲取最新的版本並更新緩存
對於圖像 來有效利用和更新緩存
js清除浏覽器緩存 二
為 了減小浏覽器與服務器之間網絡傳輸壓力往往對靜態文件如jscss修飾的圖片做cache也就是給這些文件的HTTP響應頭加入 Expires和CacheControl參數並指定緩存時間這樣一定時間內浏覽器就不會給服務器發出任何的HTTP請求(除了強制刷新)即使在 這段時間內服務器的js或css或圖片文件已經更新多次但浏覽器的數據依然是原來最能初cache的舊數據有沒有辦法讓浏覽器拿到已經修改後的最新數 據呢?
有方法是用ajax請求服務器最新文件並加上請求頭IfModifiedSince和CacheControl如下:
復制代碼 代碼如下:
$
ajax({
type: "GET"
url: "static/cache
js"
dataType: "text"
beforeSend :function(xmlHttp){
xmlHttp
setRequestHeader("If
Modified
Since"
"
");
xmlHttp
setRequestHeader("Cache
Control"
"no
cache");
}
});
這裡用了jquery
這樣浏覽器就會把最新的文件替換掉本地舊文件
當然這裡還一個問題就是js必須知道服務器更新了那個jscss圖片利用cookie和時間版本應該可以解決
jquery自從開始就有ifModified和cache參數了不用自己加header
ifModified Boolean Default: false
Allow the request to be successful only if the response has changed since the last request This is done by checking the LastModified header Default value is false ignoring the header
cache Boolean Default: true
Added in jQuery if set to false it will force the pages that you request to not be cached by the browser
復制代碼 代碼如下:
$ajax({
type: "GET"
url: "static/cachejs"
dataType: "text"
cache:false
ifModified :true
});
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20378.html