本文介绍了如果前一个正在运行,如何取消$ .ajax请求?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一段简单的代码:
$(document).on("input", "#addFoodSearch", function(event){
var search = $(this).val();
$.ajax({ url: "/ajax/search-food.php", type: 'GET', data: { 'search' : search }, dataType: 'json' }).done(
function(data){
if (data[0] == 'success'){
$('#add-food-area').html(data[1]);
$('#add-food-area').fadeIn();
}
}
);
});
我想做的是取消先前的$ .ajax请求(如果正在运行),以防用户键入得太快.我只需要传递最新的请求,而不需要传递它们的整个顺序.
What I want to do is to cancel a previous $.ajax request, if any is running, in case the user types too fast. I need only the latest request to pass, not the whole sequence of them.
我该怎么做?
推荐答案
将jqXHR对象存储在变量中,并每次均将其中止.
Store the jqXHR object in a variable and abort it each time.
var jqxhr = {abort: function () {}};
$(document).on("input", "#addFoodSearch", function(event){
var search = $(this).val();
jqxhr.abort();
jqxhr = $.ajax(...
这篇关于如果前一个正在运行,如何取消$ .ajax请求?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!