防止jQuery ajax Load使用緩存的方法小結(jié)
一、用法
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樣本代碼:
$(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文件里,就可以解決問題。
$.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ù):
<?php
header("Cache-Control: no-cache, must-revalidate");
?>
另外兩種解決方案:
在請(qǐng)求路徑中添加一個(gè)時(shí)間參數(shù)值為當(dāng)前的時(shí)間或者在表單中添加一個(gè)隱藏的字段將該字段的值設(shè)置為當(dāng)前時(shí)間。
相關(guān)文章
jQueryeasyui 中如何使用datetimebox 取兩個(gè)日期間相隔的天數(shù)
這篇文章主要介紹了jQueryeasyui 中使用datetimebox 取兩個(gè)日期間相隔的天數(shù),需要的朋友參考下吧2017-06-06jquery購物車結(jié)算功能實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了jquery購物車結(jié)算功能的實(shí)現(xiàn)方法,購買多個(gè)商品進(jìn)行統(tǒng)一結(jié)算,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11JQuery入門—JQuery程序的代碼風(fēng)格詳細(xì)介紹
良好的代碼風(fēng)格可以有效的增加可讀性,本節(jié)為大家介紹jQuery程序的代碼風(fēng)格,感興趣的朋友可以參考下2013-01-01基于jQuery實(shí)現(xiàn)Accordion手風(fēng)琴自定義插件
這篇文章主要為大家詳細(xì)介紹了基于jQuery實(shí)現(xiàn)Accordion手風(fēng)琴自定義插件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11使用jQuery快速解決input中placeholder值在ie中無法支持的問題
本篇文章主要介紹了使用jQuery快速解決input中placeholder值在ie中無法支持的問題。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-01-01jQuery validate(submitHandler函數(shù))驗(yàn)證通過發(fā)送Ajax(實(shí)例詳解)
這篇文章主要介紹了jQuery validate(submitHandler函數(shù))驗(yàn)證通過發(fā)送Ajax,可以用validate框架驗(yàn)證元素,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2022-10-10