看來,在IE9中,使用jquery .load將從瀏覽器緩存中提取數據,因此AJAX加載內容的「實時」效果不起作用。有什麼樣的開關強制jquery .load獲取數據新鮮?從緩存中阻止JQUERY .load
Thansk!
看來,在IE9中,使用jquery .load將從瀏覽器緩存中提取數據,因此AJAX加載內容的「實時」效果不起作用。有什麼樣的開關強制jquery .load獲取數據新鮮?從緩存中阻止JQUERY .load
Thansk!
如果您使用的是$.ajax
低級別方法,則可以在jQuery中使用禁用緩存選項。這在load
的簡化簽名中沒有表示。您可以通過確保URL始終是唯一的來代替它。你可以把當前的時間以毫秒爲單位的URL年底實現這一目標,因爲這將幾乎永遠是獨一無二的:
url += '?_=' + (new Date()).getTime();
(這假定url
是包含請求的URL字符串,並且它不」噸有任何查詢參數目前)
在你嘗試加載,使其先發頭,這樣的要求將不使用緩存的頁面內容...
例如,在代碼的頂部,添加以下行
<?php
header("Cache-Control: no-cache");
header("Pragma: no-cache");
//Other page contents that have to be loaded
?>
或者你可以使用$.ajax
並設置cache
選項false
這將導致jQuery來時間戳追加到引擎蓋下請求URL:
$.ajax({
url: "foo.html",
type: "GET",
cache: false,
success: function(html) {
$("#foo").html(html);
}
});
或者你可以使用
elem.load(url, "f" + (new Date()).valueOf());
讓每一個請求獲得追加到查詢字符串的新的獨特價值