js中自動清除ie緩存方法 — 常用 對於動態文件 比如 index asp?id= 或者 index aspx?id= 相信有經驗的程序員都知道怎樣禁止瀏覽器緩存數據了 但是對於靜態文件(css jpg gif等等) 在什麽場合下面我們需要禁止瀏覽器緩存他們 怎麽做? 方法壹 Dojo中我們可以用簡單的方法完成 在dojo xhrGet(包括post)等方法中都包含preventCache屬性 此屬性的含義 “默認為啟用瀏覽器緩存 否則將通過自動增加不同的參數來確保瀏覽器緩存失效” 我們只要把此屬性賦值為 “true”即可 方法二 document write(" 其中 ver= 的 就是版本號 壹般都是采用 CVS 或其他工具生成的開發版本號 這樣真正做到了應該緩存的時候緩存靜態文件 當版本有更新的時候從獲取最新的版本 並更新緩存 對於圖像 來有效利用和更新緩存 js清除瀏覽器緩存 二 為 了減小瀏覽器與服務器之間網絡傳輸壓力 往往對靜態文件 如js css 修飾的圖片做cache 也就是給這些文件的HTTP響應頭加入 Expires和Cache Control參數 並指定緩存時間 這樣壹定時間內瀏覽器就不會給服務器發出任何的HTTP請求(除了強制刷新) 即使在 這段時間內服務器的js或css或圖片文件已經更新多次 但瀏覽器的數據依然是原來最能初cache的舊數據 有沒有辦法讓瀏覽器拿到已經修改後的最新數 據呢? 有 方法是用ajax請求服務器最新文件 並加上請求頭If Modified Since和Cache Control 如下:
復制代碼 代碼如下: $ 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必須知道服務器更新了那個js css 圖片 利用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 Last Modified 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
復制代碼 代碼如下: lishixinzhi/Article/program/Java/JSP/201311/20378