首頁 >web前端 >js教程 >防止jQuery ajax Load使用快取的方法小結_jquery

防止jQuery ajax Load使用快取的方法小結_jquery

WBOY
WBOY原創
2016-05-16 16:58:391008瀏覽

一、用法
jquery的load函數是請求另一個檔案並載入到目前DOM裡的調用,load方法的完整格式是:load( url, [data], [callback] )(注意沒有參數是GET方式請求,有參數則是POST方法)。

* url:是指要匯入檔案的位址。
* data:可選參數;因為Load不只可以匯入靜態的html文件,還可以匯入動態腳本,例如PHP文件,所以要匯入的是動態文件時,我們可以把要傳遞的參數放在這裡。
* callback:可選參數;是指呼叫load方法並且得到伺服器回應後,再執行的另一個函數。

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

jQuery Load樣本碼:

複製程式碼



複製程式碼

$(document).ready(function(){
  $("#labels").load("/blog/categories/labels.html");
  //在頁面裝載時,在ID為#labels的DOM元素裡插入labels.html的內容。 html,就算我按刷新鍵也不管用。還好jQuery提供一個防止ajax使用快取的方法,把下面的語句加在head的javascript檔裡,就可以解決問題。 程式碼如下:


$.ajaxSetup ({

$.ajaxSetup ({

$.ajaxSetup ({

/關閉AJAX對應的快取

});

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


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

2.在labels.html後面加上特定時間,例如lables.html?20081116。在實際工作中,在我更新css/javascript檔案後,我都是用這種方法來防止檔案被快取。

3.在labels.html檔案的頂端加入以下聲明: 4.load函數不但可以呼叫HTML,也可以呼叫script,例如labels.php,可以在php檔案裡使用header函數:


複製程式碼

程式碼如下:
header("Cache-Control: no-cache, must-revalidate"); ?> 另外兩個解決方案: 在請求路徑中添加一個時間參數值為當前的時間或在表單中添加一個隱藏的字段將該欄位的值設定為當前時間。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn