緩存這東西,在一定程度上加快了頁面的裝載,但是也常常給我們帶來麻煩。我在上篇文章里簡單介紹了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
Cache-Control: no-cache, must-revalidate
");
?>
posted on 2009-03-23 13:50
周銳 閱讀(2435)
評論(0) 編輯 收藏 所屬分類:
Ajax