我目前正在使用一個工具來檢索jQuery事件按鍵數據庫中的地址。 當文本輸入失去焦點時,我會取消每個待處理的請求,以避免在用戶填寫輸入後出現下拉菜單。 一切工作正常,但完成我發送一個最終的ajax請求,以轉到我的表單的下一步。這個請求確實比我取消所有這些請求之前慢得多。我不明白爲什麼,取消的請求不應該影響未完成的請求(我確信它們已被取消,在chrome工具的網絡選項卡中查看它)。 我使用這個代碼: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
如果您發送該請求時未發送任何先前取消的請求,該怎麼辦?我懷疑取消的要求與您遇到問題的時間長短無關。 –