【发布时间】:2013-10-15 04:15:47
【问题描述】:
我有一个函数可以在输入更改时运行 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>
【问题讨论】:
-
你的问题标题有误,应该是Abort new AJAX request before completion of the previous
标签: javascript ajax jquery