Javascript onKeyUp的jQuery Ajax调用问题
我有一个搜索表单,其中字段调用一个名为autoSend()onKeyUp的函数。这很好,但随着数据库越来越大,我发现当按下下一个键时,ajax请求仍处于挂起状态,这可能会导致糟糕的搜索结果 我已经实现了我在Stack上找到的解决方案,但这还不够,如果有人搜索“Smith”,那么如果在“t”的键控上请求仍然挂起,它只搜索“smit”,而不是“Smith” 有人能提供建议吗 谢谢Javascript onKeyUp的jQuery Ajax调用问题,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个搜索表单,其中字段调用一个名为autoSend()onKeyUp的函数。这很好,但随着数据库越来越大,我发现当按下下一个键时,ajax请求仍处于挂起状态,这可能会导致糟糕的搜索结果 我已经实现了我在Stack上找到的解决方案,但这还不够,如果有人搜索“Smith”,那么如果在“t”的键控上请求仍然挂起,它只搜索“smit”,而不是“Smith” 有人能提供建议吗 谢谢 var loading = false; function autoSend() { if (loading
var loading = false;
function autoSend() {
if (loading == false) {
loading = true;
$.ajax({
url:'../customer/search.cfm',
type:'POST',
data: $("#searchForm").serialize()
})
.success(function(data) {
$("#reportdata").html(data)
loading = false;
})
.done(function() {
loading = false;
});
}
}
首先,
success()。其次,您可能希望使用计时器取消发送ajax请求的抖动,并中止以前发出的任何ajax请求。但中止客户端并不意味着中止服务器端可能是useful@user3154108即使接受的答案有打字错误,clearInterval(计时器),也能很好地复制代码>应该是清除超时(计时器)代码>(现在编辑!)和不处理之前提出的任何请求都应该中止的事实感谢您的输入,这两种方法都帮了大忙@user3154108链接中使用的方法非常有效!首先,success()。其次,您可能希望使用计时器取消发送ajax请求的抖动,并中止以前发出的任何ajax请求。但中止客户端并不意味着中止服务器端可能是useful@user3154108即使接受的答案有打字错误,clearInterval(计时器),也能很好地复制代码>应该是清除超时(计时器)代码>(现在编辑!)和不处理之前提出的任何请求都应该中止的事实感谢您的输入,这两种方法都帮了大忙@user3154108链接中使用的方法非常有效!