Javascript jQueryUIAjax选项卡bug?
我有一个JSON,它从要构建的选项卡服务器返回,Javascript jQueryUIAjax选项卡bug?,javascript,jquery,ajax,jquery-ui,Javascript,Jquery,Ajax,Jquery Ui,我有一个JSON,它从要构建的选项卡服务器返回, 所以我在我的JS中初始化它们,如下所示: $('#tabs').tabs( 'ajaxOptions', { timeout: 20000, error: function(xhr, status, index, anchor){ console.log( status, index, anchor ); } }) .tabs('add', item.CategoryLink, item.CategoryNa
所以我在我的JS中初始化它们,如下所示:
$('#tabs').tabs( 'ajaxOptions', {
timeout: 20000,
error: function(xhr, status, index, anchor){
console.log( status, index, anchor );
}
})
.tabs('add', item.CategoryLink, item.CategoryName);
问题是,当我单击一个选项卡时,在加载完成之前,我单击另一个选项卡,上一个请求被中止,当我再次单击第一个请求时,将不再调用该请求
这是非常糟糕的,因为它显然没有获取请求,那么给出了什么?
我试图通过设置以下内容绕过此设置:
.tabs({cache:false})
但这是一件坏事,因为我不想每次都有请求…如果发送了响应,则应将其缓存
使用
jqueryui1.8.1
您可能对AJAX调用使用了相同的XHR对象,从而取消了以前的每个请求。在我看来,这是不可避免的,因为在使用选项卡
功能时,您无法手动创建新的
XHR请求
此外,单击选项卡时还有20(超时:20000,
)秒超时。那有什么用
Hth解决方案来自:在选项卡加载事件中使用此选项:
load: function(event, ui){
$(ui.tab).data("cache.tabs",($(ui.panel).html() == "") ? false : true);
}
因为我有需要很长时间才能加载的选项卡,所以我给它们20秒的响应机会,然后我会提示一个错误。我能想到的唯一解决办法是自己重写选项卡我看到有一个漏洞: