加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax的IE cache issue

发布时间:2020-12-15 21:01:35 所属栏目:百科 来源:网络整理
导读:运用Ajax做了一个名字检验,第一次是有效的,但是提交过后,再检验一次,结果就不对了,是由于IE的cache的原因。 function verify() { $.ajax({ //issue for IE cache; timestamp=" + new Date().getTime() url:"checkGroupName?timestamp=" + new Date().ge

运用Ajax做了一个名字检验,第一次是有效的,但是提交过后,再检验一次,结果就不对了,是由于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 取得最新的数据,但是 IE 就不一样了,它会 cache 住之前得到的数据,只有第一次 request 时会真正的去 server 读取数据,导致ajax数据不会随时间而更新….

解决方案(从网上收集的):

  1在服务端加 header("Cache-Control: no-cache,must-revalidate"); 或者用下面的组合更好一些:

header("Expires:Sat,1Jan200500:00:00GMT");

header ( " Last-Modified: " . gmdate ( " D,dMYH:i:s " ) . " GMT " );
header ( " cache-Control:no-cache,must-revalidate " );
header ( " Pragma:no-cache " );

  2ajax发送请求前加上 xmlHttpRequest.setRequestHeader("If-Modified-Since","0");

  3ajax发送请求前加上 xmlHttpRequest.setRequestHeader("Cache-Control","no-cache");

  4 Ajax URL 参数后加上 "?fresh=" + Math.random(); //当然这里参数 fresh 可以任意取了

  5第四种方法和第三种类似,在 URL 参数后加上 "?timestamp=" + new Date().getTime(); //推荐使用这种方式,我用的就是这种,个人认为比较方便。

  6POST替代GET:不推荐

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读