我正在尝试构建一个自动完成的用户界面。有一个输入,其keyup
函数执行ajax调用服务器以获取最相关的数据。但是,如果用户键入一个字,例如10个字符,则每个keyup
都会发出一个ajax调用,并且我的对话框将刷新10次。执行当前的ajax调用并中止所有先前的调用
我尝试使用abort()
进行ajax调用。当我对之前的ajax调用进行中止时,不会进行调用,但仍然会在执行最后一个调用之前等待10个调用,这会使用户体验非常糟糕。
那么有没有一种方法可以执行当前的ajax调用,而不会从前一个延迟?
我的代码的一部分:
var request_autocomplete=jQuery.ajax({});
$('.review_autocomplete').keyup(function() {
request_autocomplete.abort();
request_autocomplete=jQuery.ajax({
// DO something
});
});
可能重复[jQuery的自动完成,可以给我时,我提出一个新的前一个AJAX调用停止?](http://stackoverflow.com/questions/4121963/jquery-autocomplete-can-i-have-the-previous-ajax-calling-stopped-when-i-raise -a) – Farshad 2014-08-29 23:51:30
我不使用JQuery自动完成 – 2014-08-30 00:18:45