IE下的AJAX缓存问题

前端之家收集整理的这篇文章主要介绍了IE下的AJAX缓存问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前天帮一个学弟看一个问题:在后台方法设置断点,不清空IE缓存的时候,无法走到断点处,于是得出结论是IE缓存的问题.于是提出了通过IE的自动清除缓存功能可以解决这个问题的结论,在这么做了之后问题依然没有得到解决,当时一怒之下让学弟改用谷歌浏览器,果然问题就消失了!然后,然后就是痛骂IE。

冷静之后想想,我们之前也用IE开发,但是并没有遇到这种问题,在仔细思考一番之后发现,事情可能没有那么简单。因为在AJAX请求里面并没有设置CACHE参数。碰巧今天看到一篇介绍AJAX缓存的问题。转载如下:

在IE8 9下,进行Ajax请求时,若与之前请求相同,则不会再从服务器获取数据,而是直接从本地获取。这样,在使用$.ajax时可以将其cache属性设置为false.
cache:
要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false),设置为false将不会从浏览器缓存中加载请求信息。

1.全局设置

//$.ajaxSetup() 方法设置全局 AJAX 默认选项。
$.ajaxSetup({ cache: false });
缓存并非是为了给我们带来麻烦而设置的,毕竟别的浏览器可以正常使用。所以,要为IE8 9单独设置禁用缓存中的信息。

//jquery 1.9.0后取消了$.browser
if($.browser.msie&&($.browser.version=="8.0"||$.browser.version=="9.0")){
  //做处理        
}

在1.9.0之后可以使用$.support来判断

//IE事件拷贝
if(!$.support.noCloneEvent&&!$.support.noCloneChecked){
   //做处理 
}
原文链接:https://www.f2er.com/ajax/163613.html

猜你在找的Ajax相关文章