欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

防止jQuery ajax Load使用緩存的方法小結(jié)

 更新時(shí)間:2014年02月22日 10:04:25   作者:  
本篇文章主要是對(duì)防止jQuery ajax Load使用緩存的方法進(jìn)行了介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助

一、用法
jquery的load函數(shù)是請(qǐng)求另一個(gè)文件并加載到當(dāng)前DOM里的調(diào)用,load方法的完整格式是:load( url, [data], [callback] )(注意沒有參數(shù)是GET方式請(qǐng)求,有參數(shù)則是 POST方法)。

* url:是指要導(dǎo)入文件的地址。
* data:可選參數(shù);因?yàn)長(zhǎng)oad不僅僅可以導(dǎo)入靜態(tài)的html文件,還可以導(dǎo)入動(dòng)態(tài)腳本,例如PHP文件,所以要導(dǎo)入的是動(dòng)態(tài)文件時(shí),我們可以把要傳遞的參數(shù)放在這里。
* callback:可選參數(shù);是指調(diào)用load方法并得到服務(wù)器響應(yīng)后,再執(zhí)行的另外一個(gè)函數(shù)。

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

jQuery Load樣本代碼:

復(fù)制代碼 代碼如下:

$(document).ready(function(){
  $("#labels").load("/blog/categories/labels.html");
  //在頁面裝載時(shí),在ID為#labels的DOM元素里插入labels.html的內(nèi)容。
});

當(dāng)我更新了labels.html以后,在IE7里load方法仍舊在使用舊的labels.html,就算我按刷新鍵也不管用。好在jQuery提供一個(gè)防止ajax使用緩存的方法,把下面的語句加在head的javascript文件里,就可以解決問題。
復(fù)制代碼 代碼如下:

$.ajaxSetup ({
    cache: false //關(guān)閉AJAX相應(yīng)的緩存
});

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

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

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

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

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

4.load函數(shù)不僅可以調(diào)用HTML,也可以調(diào)用script,比如labels.php,可以在php文件里使用header函數(shù):

復(fù)制代碼 代碼如下:

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

另外兩種解決方案:
在請(qǐng)求路徑中添加一個(gè)時(shí)間參數(shù)值為當(dāng)前的時(shí)間或者在表單中添加一個(gè)隱藏的字段將該字段的值設(shè)置為當(dāng)前時(shí)間。

相關(guān)文章

最新評(píng)論