溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ajax的 IE cache 相關(guān)問題解決是怎樣的

發(fā)布時(shí)間:2021-10-08 10:38:54 來源:億速云 閱讀:95 作者:柒染 欄目:web開發(fā)

本篇文章給大家分享的是有關(guān)ajax的 IE cache 相關(guān)問題解決是怎樣的,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

運(yùn)用Ajax做了一個(gè)名字檢驗(yàn),第一次是有效的,但是提交過后,再檢驗(yàn)一次,結(jié)果就不對了,是由于IE的cache的原因。

 代碼如下:


function verify() {
$.ajax({
//issue for IE cache; timestamp=" + new Date().getTime()
url:"checkGroupName?timestamp=" + new Date().getTime(),
async: true,
data:"groupName=" + $("#cn").val()+"&groupTypeForDetail="+$("#groupType").val()+"&prefix="+$("#p").val(),
dataType:"html",
success:function(data){
if(data==1){
$("#result").html("<font color='green'>Group name["+$("#p").val()+ $("#cn").val()+"]Valid</font>");
$("#email").val($("#p").val()+ $("#cn").val()+$("#emailHidden").val());
$('#subData').removeAttr("disabled");
}else if(data==2){
$("#result").html("<font color='red'>Group name["+$("#p").val()+ $("#cn").val()+ "]already existed.</font>");
$('#subData').attr('disabled',"true");
}else{
$("#result").html("<font color='red'>Group name can not be empty.</font>");
$('#subData').attr('disabled',"true");
}
}
});
}


原理
Firefox 每次 request 都會重新再回一次 server 取得最新的數(shù)據(jù),但是 IE 就不一樣了,它會 cache 住之前得到的數(shù)據(jù),只有第一次 request 時(shí)會真正的去 server 讀取數(shù)據(jù),導(dǎo)致ajax數(shù)據(jù)不會隨時(shí)間而更新….
解決方案(從網(wǎng)上收集的)
  1、在服務(wù)端加 header("Cache-Control: no-cache, must-revalidate"); 或者用下面的組合更好一些:

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


header("Expires: Sat, 1 Jan 2005 00:00:00 GMT");
header("Last-Modified: ".gmdate( "D, d M Y H:i:s")."GMT");
header("cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");


  2、在ajax發(fā)送請求前加上 xmlHttpRequest.setRequestHeader("If-Modified-Since","0");
  3、在ajax發(fā)送請求前加上 xmlHttpRequest.setRequestHeader("Cache-Control","no-cache");
  4、在 Ajax 的 URL 參數(shù)后加上 "?fresh=" + Math.random(); //當(dāng)然這里參數(shù) fresh 可以任意取了
  5、第四種方法和第三種類似,在 URL 參數(shù)后加上 "?timestamp=" + new Date().getTime(); //推薦使用這種方式,我用的就是這種,個(gè)人認(rèn)為比較方便。
  6、用POST替代GET:不推薦

以上就是ajax的 IE cache 相關(guān)問題解決是怎樣的,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI