我有一個函數在輸入更改時運行ajax調用。在新的請求中取消先前的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>
這裏是這裏更好的解決方案是一個更好的解決方案HTTP: //www.thecave.info/how-to-abort-a-previous-ajax-request-in-jquery/ – semira