ajax的 IE cache 相关问题解决

 更新时间:2013年04月02日 17:35:40   作者:  
运用Ajax做了一个名字检验,第一次是有效的,但是提交过后,再检验一次,结果就不对了,是由于IE的cache的原因,接下来介绍下详细的解决方法,感性的朋友可以参考下哈
运用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, 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发送请求前加上 xmlHttpRequest.setRequestHeader("If-Modified-Since","0");
  3、在ajax发送请求前加上 xmlHttpRequest.setRequestHeader("Cache-Control","no-cache");
  4、在 Ajax 的 URL 参数后加上 "?fresh=" + Math.random(); //当然这里参数 fresh 可以任意取了
  5、第四种方法和第三种类似,在 URL 参数后加上 "?timestamp=" + new Date().getTime(); //推荐使用这种方式,我用的就是这种,个人认为比较方便。
  6、用POST替代GET:不推荐

相关文章

  • Ajax 表单验证 实现代码

    Ajax 表单验证 实现代码

    最近做了一个项目中的登录注册模块,大部分功能从一个网站里扣出来的,部分功能自己修改,自认为还是有点人性化的
    2009-05-05
  • JQuery+ajax实现批量上传图片(自写)

    JQuery+ajax实现批量上传图片(自写)

    jquery+ajax方式实现单张图片上传的代码是可以搜的到,实现批量上传图片的程序却没搜索到于是自己写了个,感兴趣的朋友可以参考下
    2013-04-04
  • Ajax向后台传json格式的数据出现415错误的原因分析及解决方法

    Ajax向后台传json格式的数据出现415错误的原因分析及解决方法

    ajax往后台传json格式数据报415错误,什么原因导致的呢,该怎么解决呢?下面脚本之家小编给大家带来了Ajax向后台传json格式的数据出现415错误的原因分析及解决方法感兴趣的朋友一起看看吧
    2016-10-10
  • ajax实现excel报表导出

    ajax实现excel报表导出

    这篇文章主要为大家详细介绍了ajax实现excel报表导出,解决乱码问题,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • 用AJAX技术聚合RSS

    用AJAX技术聚合RSS

    用AJAX技术聚合RSS...
    2006-06-06
  • 全面解析Ajax综合应用(全)

    全面解析Ajax综合应用(全)

    AJAX = 异步 JavaScript 和 XML,AJAX 是一种用于创建快速动态网页的技术。本文给大家带来了全面解析Ajax综合应用大全,非常不错具有参考借鉴价值,感兴趣的朋友一起看下吧
    2016-06-06
  • Ajax与mysql数据交互制作留言板功能(全)

    Ajax与mysql数据交互制作留言板功能(全)

    这篇文章主要为大家详细介绍了Ajax与mysql数据交互,实现留言板功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Ajax商品分类三级联动的简单实现(案例)

    Ajax商品分类三级联动的简单实现(案例)

    下面小编就为大家带来一篇Ajax商品分类三级联动的简单实现(案例)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • 多ajax请求的各类解决方案(同步, 队列, cancel请求)

    多ajax请求的各类解决方案(同步, 队列, cancel请求)

    ajax带来很好的用户体验,于是一个稍微注重web系统使用ajax基本成为必然。当传统功能型web项目向用户体验型项目转变时,层出不穷的需求就来了。正如本篇所介绍的就是一个多个AJAX请求的情况下,如何利用jquery来处理几种case
    2012-03-03
  • IE浏览器与FF浏览器关于Ajax传递参数值为中文时的区别实例分析

    IE浏览器与FF浏览器关于Ajax传递参数值为中文时的区别实例分析

    这篇文章主要介绍了IE浏览器与FF浏览器关于Ajax传递参数值为中文时的区别,结合实例分析说明了ajax参数传递过程中的参数转码相关注意事项与使用技巧,需要的朋友可以参考下
    2015-12-12

最新评论