IE8下Ajax缓存问题及解决办法

所属分类: 网络编程 / AJAX相关 阅读数: 149
收藏 0 赞 0 分享

Ajax简介

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。

AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。

AJAX 是一种用于创建快速动态网页的技术。

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

下面的代码,在其他浏览器都是正常的,但是在IE8中出现诡异问题。

$.ajax({
url:dataUrl,
data:encodeURI(currentjsonform),
dataType:'JSON',
success:function(item){
debugger;
....
}
}); 

经过仔细排查,尼玛是 IE8 存在的 ajax 缓存问题。尼玛,执行到这里,实际上,并没有访问我们后台的代码,而是使用了以前缓存的结果,后台进行调试时,没有反应,才发现是这个问题!!!!IE8肯跌啊。

但是 奇怪的是,很多地方都是这样的代码,为什么只有这里被缓存,而其他地方没有缓存问题呢?

解决方法:

1.

$.ajaxSetup({ cache: false }); 

2. 参数加上属性:cache:false

$.ajax({
url:dataUrl,
data:encodeURI(currentjsonform),
dataType:'JSON',
cache:false,
success:function(item){
debugger;
....
}
});

3. 还可以在 url 后面加上时间戳等方法。

教训:

程序员真是应该:过马路要两边看!

不要太相信默认值,需要什么属性,一定要指明。所以最好每次都指明: cache:false,或者每个js 页面保证在最开始处执行一次:

$.ajaxSetup({ cache: false }); 

其实 路径带上时间戳或者随机数的方法,有时并不可靠!可能是浏览器会忽略它吧。反正IE8多次遇到 url带时间戳失效的情况。

以上所述是小编给大家介绍的IE8下Ajax缓存问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

更多精彩内容其他人还在看

完美ajax类 支持事件

完美ajax类 支持事件
收藏 0 赞 0 分享

AJAXCALL

AJAXCALL
收藏 0 赞 0 分享

天枫AJAX天气预报系统V1.0

天枫AJAX天气预报系统V1.0
收藏 0 赞 0 分享

Ajax.基础教程 电子书版 提供下载

Ajax.基础教程 电子书版 提供下载
收藏 0 赞 0 分享

AJAX入门之深入理解JavaScript中的函数

AJAX入门之深入理解JavaScript中的函数
收藏 0 赞 0 分享

Ajax技术(WEB无刷新提交数据)

Ajax技术(WEB无刷新提交数据)
收藏 0 赞 0 分享

用AJAX技术聚合RSS

用AJAX技术聚合RSS
收藏 0 赞 0 分享

AjaxUI:鼠标拖拽

AjaxUI:鼠标拖拽
收藏 0 赞 0 分享

AjaxUI:滑动条

AjaxUI:滑动条
收藏 0 赞 0 分享

一个AJAX自动完成功能的js封装源码[支持中文]第1/2页

一个AJAX自动完成功能的js封装源码[支持中文]
收藏 0 赞 0 分享
查看更多