我有一个具有两个选项卡的jQueryUI选项卡控件设置。一种是通过ajax加载其内容,它是默认的选项卡。另一个是简单的非ajax选项卡。
当用户访问该页面时,将显示ajax选项卡。由于内容加载至少需要5-10秒,因此一些用户单击查看第二个选项卡。此时,当显示第二个选项卡时,ajax调用似乎被取消了-选项卡的加载器消失了,单击ajax选项卡只显示一个空白的div。由于我关闭了缓存,选项卡不会重新加载。打开缓存将允许用户至少再次请求数据,但由于这些调用可能需要很长时间,因此这不是一个可行的解决方案。
这种情况下的理想行为是,即使单击了其他选项卡,ajax选项卡仍保持其请求打开。
这个是可能的吗?
发布于 2010-08-17 00:16:37
缺省行为是对挂起的请求you can see it in the source here调用.abort()
if ( this.xhr ) {
this.xhr.abort();
delete this.xhr;
}但是您可以使用select事件处理程序稍微欺骗一下它,并删除对前一个XmlHeepRequest的引用,如下所示:
$("#tabs").tabs('destroy').tabs({
select: function(event, ui) {
$(this).data("tabs").xhr = null;
}
});这是因为select event handler是由before that .abort() call when selecting触发的。
https://stackoverflow.com/questions/3495016
复制相似问题