gpt4 book ai didi

jQuery ajax 请求取消会减慢当前请求

转载 作者:行者123 更新时间:2023-12-03 22:40:52 26 4
gpt4 key购买 nike

我目前正在使用一个工具来检索 jQuery 事件按键的数据库中的地址。当文本输入失去焦点时,我取消每个待处理的请求,以避免用户完成填写输入后出现下拉列表。一切正常,但是,为了完成,我发送一个最终的 ajax 请求以转到表单的下一步。这个请求确实比我取消所有这些请求之前慢了很多。我不明白为什么,取消的请求不应该影响待处理的请求(并且我确信它们已被取消,请在 Chrome 工具的网络选项卡中查看)。我正在使用这段代码:

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();
});

我想有一个我不明白的优化技巧。感谢您的帮助。

最佳答案

还请记住,向服务器打开 AJAX 请求,然后取消请求不会取消服务器上处理的请求,它只是停止浏览器监听响应。服务器将继续处理任何断开连接的 ajax 请求,直到它们完成运行,此时它会尝试向客户端发送响应,但发现没有人在监听,就会终止。

关于jQuery ajax 请求取消会减慢当前请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18405568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com