防止jQuery Load使用緩存

緩存這東西,在一定程度上加快了頁面的裝載,但是也常常給我們帶來麻煩。我在上篇文章裏簡單介紹了jQuery中Load方法的使用。在實際運用中,我們可能會碰到瀏覽器緩存的問題。比如我就在IE7裏碰到這個問題。

jQuery Load樣本代碼:

$(document).ready(function(){
  $("#labels").load("/blog/categories/labels.html");
  //在頁面裝載時,在ID爲#labels的DOM元素裏插入labels.html的內容。 
});

當我更新了labels.html以後,在IE7裏load方法仍舊在使用舊的labels.html,就算我按刷新鍵也不管用。好在jQuery提供一個防止ajax使用緩存的方法,把下面的語句加在head的javascript文件裏,就可以解決問題。

$.ajaxSetup ({
    cache: false //關閉AJAX相應的緩存 
});

此外我再介紹幾種方法解決緩存的方法。注意:我沒有在jQuery load的問題上測試過,這些方法僅供參考!

1.更改文件名,比如把labels.html改成lables_new.html,但是這是沒有辦法的辦法,一般沒有人這麼做。

2.在labels.html後加上特定時間,比如lables.html?20081116。在實際工作中,在我更新css/javascript文件後,我都是用這種辦法來防止文件被緩存。

3.在labels.html文件的頂部加入以下聲明:

<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
<META HTTP-EQUIV="Expires" CONTENT="-1">

4.load函數不僅可以調用HTML,也可以調用script,比如labels.php,可以在php文件裏使用header函數:

php
header("Cache-Control: no-cache, must-revalidate");
?>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章