2010-05-06 3 views
0

У меня есть JSON, который возвращает с сервера вкладок для создания,
поэтому я инициализировать их в моих JS, как это:Ошибка jQuery-Ui Ajax Tabs?

$('#tabs').tabs('ajaxOptions', { 
    timeout: 20000, 
    error: function(xhr, status, index, anchor){ 
     console.log(status, index, anchor); 
    } 
}) 
.tabs('add', item.CategoryLink, item.CategoryName); 

Дело в том, когда я нажимаю на вкладку, и прежде чем он done loading Я щелкаю другую вкладку,
предыдущий запрос прерывается и никогда не звонит снова, когда я снова нажимаю на этот первый!
Это очень плохо, потому что он явно не получил запрос, так что дает?
Я попытался обойти это, установив:

.tabs({ cache: false })

, но это плохая вещь, чтобы сделать, потому что я не хочу иметь запрос каждый раз снова ...
следует cachced, если ответ был отправлен.

использованием jquery-ui 1.8.1

+0

Я вижу, что есть открытый билет на эту ошибку: http://dev.jqueryui.com/ билет/5465 – vsync

ответ

1

Обход с bug tracker: использование
это внутри нагрузки лапок событие:

load: function(event, ui){ 
    $(ui.tab).data("cache.tabs",($(ui.panel).html() == "") ? false : true); 
} 
0

Возможно, Вы используете один и тот же объект XHR для вызова AJAX, таким образом, отменяя все предыдущие просьбы. Это, насколько я вижу, неизбежно, поскольку вы не можете вручную создать запрос XHR new при использовании функции tabs.

Кроме того, у вас есть 20 (timeout: 20000,) второго таймаута при нажатии на вашу вкладку. Какая польза?

Hth

+0

, потому что у меня есть вкладки, на которые требуется много времени, поэтому я даю им возможность ответить на 20 секунд, затем я вызываю ошибку. единственное решение, о котором я могу думать, - это переписать сами вкладки – vsync

Смежные вопросы