jQuery中禁用缓存
最近在使用jQuery ui中的tabs插件时,遇到一个问题。
在非IE浏览器下,标签是自动刷新的。就是在不一样的标签间切换,不用刷新整个页面,若是某个标签内容有更新,好比显示时间,那么切换到别的标签,再切换回来,时间是最自动更新的。
可是在IE中,不管怎么修改标签内的代码,内容都不会自动刷新,并且,按F5设置是Ctrl+F5,内容都不会自动更新!
后来,在国外论坛中找到了一种方法,就是禁用jQuery的缓存:
$.ajaxSetup({cache:false})
其实,cache:false我以前也有想到,可是把它放到tabs()里面了,因此居然无效。
看来仍是对jQuery框架了解的不是太深入哈。
不过这也暴露了使用框架的一个弊端:不太自由。若是须要使用些高级的功能,就至关麻烦。
固然,若是只是在UI上,jQuery是很是棒的。可是若是处理数据,它就显得有点儿力不从心了。
貌似在数据处理上EXT比较强大些。
[摘自:http://shenfei.me/jquery-to-disable-caching.html]html
---------------------------------------------------------
呵呵,我最近也碰到这个问题了,我用的是jQuery 1.4.4和jQuery UI 1.8.8,在IE六、七、8版本中都有这个问题,非IE浏览器中没有任何问题,一开始我觉得是jQuery UI 1.8.8版本的问题,当我升级到jQuery UI 1.8.14后问题依旧。崩溃ing,因而google,还好发现博主你这篇文章,而后我试着在ajaxOptions中加入cache:false,然 后再测试IE六、七、8,问题修复了!!!
jQuery(document).ready(function() {
$("#tabs").tabs({
ajaxOptions: {
cache:false, // 加上此句代码,解决IE浏览器下因为缓存的缘由致使tab页面内容不刷新问题!
error: function(xhr, status, index, anchor) {
$(anchor.hash).html("暂无报表选项卡内容,请新建本部门首页报表内容!”);
}
}
});
});
感谢上面那篇文章博主!~终于解决了这个让我差点吐血的问题!~jquery
PS:按照上面那篇文章的修改方法是这样的:将$.ajaxSetup({cache:false}); 放到页面$(document).ready()里!ajax