首頁 > web前端 > js教程 > 主體

JS清除IE瀏覽器快取的方法

亚连
發布: 2018-05-22 13:48:57
原創
2353 人瀏覽過

本文為大家詳細介紹下js中自動清除ie快取的幾種方法,大家可以依照自己的需求自由選擇適合自己的,希望對大家學習js有幫助

##js中自動清除ie快取方法— 常用對於動態檔案,例如index.asp?id=... 或index.aspx?id=... 相信有經驗的程式設計師都知道怎麼禁止瀏覽器快取資料了.
但是對於靜態檔案(css,jpg,gif等等), 在什麼場合下面我們需要禁止瀏覽器快取他們,怎麼做?

方法一:Dojo中我們可以用簡單的方法完成:在dojo.xhrGet(包括post)等方法中都包含preventCache屬性,此屬性的含義: 「預設為啟用瀏覽器緩存,否則將透過自動增加不同的參數來確保瀏覽器緩存失效」 我們只要把此屬性賦值為:「true」即可。
方法二:document.write(" 其中ver=113 的113就是版本號,一般都是採用CVS 或其他工具產生的開發版本號。
這樣才真正做到了應該緩存的時候緩存靜態文件,當版本有更新的時候從獲取最新的版本,並更新緩存。
##為了減少瀏覽器與伺服器之間網路傳輸壓力,往往對靜態文件,如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","0");

xmlHttp.setRequestHeader("Cache-Control","no-cache");
}
}); 

這裡用了jquery.
這樣瀏覽器就會把最新的檔案替換掉本地舊檔案。知道伺服器更新了那個js、css、圖片,利用cookie和時間版本應該可以解決.
jquery自從1.2開始就有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 ##Addd jQuery 1.2, if set to false it will force the pages that you request to not be cached by the browser.

$.ajax({
type: "GET",
url: "static /cache.js",
dataType: "text",
cache:false,
ifModified :true

});


上面是我整理給大家的,希望今後會對大家有幫助。

相關文章:


ajax請求地址後面加上隨機數字防止瀏覽器快取的原因

解決瀏覽器記住ajax請求並能前進與後退問題

PHP登入(ajax提交資料和後台校驗)

#

以上是JS清除IE瀏覽器快取的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!