В настоящее время я использую инструмент для извлечения адресов в базе данных при нажатии на событие jQuery. Когда текстовый ввод теряет фокус, я отменяю все ожидающие запросы, чтобы избежать выпадающего списка, после того, как пользователь закончил заполнять вход. Все работает правильно, но, чтобы закончить, я отправлю окончательный запрос ajax, чтобы перейти к следующему шагу моей формы. Этот запрос действительно намного медленнее, чем до того, как я отменил все эти запросы. Я не понимаю, почему отмененный запрос не должен влиять на ожидающий (и я уверен, что они отменены, глядя на вкладку сети в хром-инструментах). Я использую этот код:jQuery запрос ajax отменен, замедляет текущий запрос
jQuery.xhrPool = [];
jQuery.xhrPool.abortAll = function() {
jQuery(this).each(function(idx, jqXHR) {
jqXHR.abort();
jQuery('.loader').hide();
});
};
jQuery.ajaxSetup({
beforeSend: function(jqXHR) {
jQuery.xhrPool.push(jqXHR);
},
complete: function(jqXHR) {
var index = jQuery.xhrPool.indexOf(jqXHR);
if (index > -1) {
jQuery.xhrPool.splice(index, 1);
}
}
});
jQuery('#my_input').blur(function(){
jQuery.xhrPool.abortAll();
});
Я предполагаю, что я оптимизация трюк я не получаю. Спасибо за помощь.
Если вы не отменили их, это еще есть задержка? –
Это гораздо медленнее, чем когда я их отменяю. – M4nch4k
И что, если вы отправили этот запрос, не отправив ни одно из предыдущих, которое вы отменяете в первую очередь? Я подозреваю, что отмененные запросы не имеют никакого отношения к тому, как долго у вас возникают проблемы. –