IE8 ajax缓存问题
2016-07-08 14:18
267 查看
娘希匹,又遇到缓存问题了。
下面的代码,在其他浏览器都是正常的,但是在IE8中出现诡异问题。
经过仔细排查,尼玛是 IE8 存在的 ajax 缓存问题。尼玛,执行到这里,实际上,并没有访问我们后台的代码,而是使用了以前缓存的结果,后台进行调试时,没有反应,才发现是这个问题!!!!IE8肯跌啊。
但是 奇怪的是,很多地方都是这样的代码,为什么只有这里被缓存,而其他地方没有缓存问题呢?
后来想通了:因为这个ajax调用每次返回的结果是一样的!
解决方法:
1.
2. 参数加上属性:cache:false
3. 还可以在 url 后面加上时间戳等方法。
教训:
程序员真是应该:过马路要两边看!
不要太相信默认值,需要什么属性,一定要指明。所以最好每次都指明: cache:false,或者每个js 页面保证在最开始处执行一次:
其实 路径带上时间戳或者随机数的方法,有时并不可靠!可能是浏览器会忽略它吧。反正IE8多次遇到 url带时间戳失效的情况。
下面的代码,在其他浏览器都是正常的,但是在IE8中出现诡异问题。
$.ajax({ url:dataUrl, data:encodeURI(currentjsonform), dataType:'JSON', success:function(item){ debugger; .... } });
经过仔细排查,尼玛是 IE8 存在的 ajax 缓存问题。尼玛,执行到这里,实际上,并没有访问我们后台的代码,而是使用了以前缓存的结果,后台进行调试时,没有反应,才发现是这个问题!!!!IE8肯跌啊。
但是 奇怪的是,很多地方都是这样的代码,为什么只有这里被缓存,而其他地方没有缓存问题呢?
后来想通了:因为这个ajax调用每次返回的结果是一样的!
解决方法:
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带时间戳失效的情况。
相关文章推荐
- XP安装IIS来加载aspx页面(Web调用SAP数据)
- How to create a project with existing folder of files in Visual Studio?
- iOS实战项目:属于2个人的地图(共享实时位置,泡妞专用)
- 小延迟大吞吐:LMAX架构
- Shell脚本编程之结构化命令
- 工欲善其事必先利其器——Android Studio使用技巧与快捷键
- 关于Java Static 和Final的详细阐述
- 【转】Android Studio -修改LogCat的颜色*美爆了*
- android6.0 PullToRefreshWebView中的FloatMath.floor()不能用了如何替换
- 微信网页开发之video标签[HTML5微信播放器video]
- 黑马程序员----面试题之交通管理系统
- Retrofit的简单使用
- Retrofit的简单使用
- Linux安装qt creator作为c++ IDE
- Vino& VNC server auto start after Ubuntu boot up
- 3D touch
- 与rxJava的偶遇
- 二分查找
- 优秀的网站 - 导航
- linux下ORACLE数据库中创建新用户