gpt4 book ai didi

javascript - 在完成前一个请求之前中止新的 AJAX 请求

转载 作者:IT王子 更新时间:2023-10-29 02:52:56 26 4
gpt4 key购买 nike

我有一个函数可以在输入发生变化时运行 AJAX 调用。

但是,在上一个 ajax 调用完成之前,该函数有可能再次被触发。

我的问题是,如何在开始新的 AJAX 调用之前中止之前的 AJAX 调用?不使用全局变量。 (参见类似问题的答案 here )

JSFiddle我当前的代码:

Javascript:

var filterCandidates = function(form){
//Previous request needs to be aborted.
var request = $.ajax({
type: 'POST',
url: '/echo/json/',
data: {
json: JSON.stringify({
count: 1
})
},
success: function(data){
if(typeof data !== 'undefined'){
jQuery('.count').text(data.count)
console.log(data.count);
}
}
});
};

if(jQuery('#search').length > 0){
var form = jQuery('#search');
jQuery(form).find(':input').change(function() {
filterCandidates(form);
});
filterCandidates(form);
}

HTML:

<form id="search" name="search">
<input name="test" type="text" />
<input name="testtwo" type="text" />
</form>
<span class="count"></span>

最佳答案

 var currentRequest = null;    

currentRequest = jQuery.ajax({
type: 'POST',
data: 'value=' + text,
url: 'AJAX_URL',
beforeSend : function() {
if(currentRequest != null) {
currentRequest.abort();
}
},
success: function(data) {
// Success
},
error:function(e){
// Error
}
});

关于javascript - 在完成前一个请求之前中止新的 AJAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19244341/

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