国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > AJAX > 正文

防止jQuery ajax Load使用緩存的方法小結

2024-09-01 08:32:36
字體:
來源:轉載
供稿:網友
本篇文章主要是對防止jQuery ajax Load使用緩存的方法進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助

一、用法
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的內容。
});


當我更新了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");
?>


另外兩種解決方案:
在請求路徑中添加一個時間參數值為當前的時間或者在表單中添加一個隱藏的字段將該字段的值設置為當前時間。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 曲周县| 隆化县| 新民市| 米脂县| 西畴县| 绥宁县| 广河县| 徐水县| 朔州市| 宽城| 铁岭市| 达日县| 台北市| 漳州市| 论坛| 丘北县| 潜江市| 兴安县| 宁陕县| 福清市| 四平市| 丰原市| 土默特右旗| 舟山市| 南靖县| 海阳市| 云龙县| 福建省| 盘山县| 海安县| 桑植县| 涟源市| 麦盖提县| 锦州市| 运城市| 灵山县| 赤峰市| 奉节县| 辉南县| 嫩江县| 抚州市|