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]
---------------------------------------------------------
呵呵,我最近也碰到这个问题了,我用的是jQuery 1.4.4和jQuery UI 1.8.8,在IE6、7、8版本中都有这个问题,非IE浏览器中没有任何问题,一开始我以为是jQuery UI 1.8.8版本的问题,当我升级到jQuery UI 1.8.14后问题依旧。崩溃ing,于是google,还好发现博主你这篇文章,然后我试着在ajaxOptions中加入cache:false,然 后再测试IE6、7、8,问题修复了!!!
jQuery(document).ready(function() {
$("#tabs").tabs({
ajaxOptions: {
cache:false, // 加上此句代码,解决IE浏览器下由于缓存的原因导致tab页面内容不刷新问题!
error: function(xhr, status, index, anchor) {
$(anchor.hash).html("暂无报表选项卡内容,请新建本部门首页报表内容!”);
}
}
});
});
感谢上面那篇文章博主!~终于解决了这个让我差点吐血的问题!~
PS:按照上面那篇文章的修改方法是这样的:将$.ajaxSetup({cache:false}); 放到页面$(document).ready()里!
来源:oschina
链接:https://my.oschina.net/u/115036/blog/37811