可能重复:
Kill Ajax requests using JavaScript using jQuery使用Jquery .ajax取消正在进行的AJAX请求?
下面是简单的代码,我有工作:
$("#friend_search").keyup(function() {
if($(this).val().length > 0) {
obtainFriendlist($(this).val());
} else {
obtainFriendlist("");
}
});
function obtainFriendlist(strseg) {
$.ajax({
type: "GET",
url: "getFriendlist.php",
data: "search="+strseg,
success: function(msg){
UIDisplayFriends(msg);
}
});
}
本质上讲,如果一个keyup事件是在函数obtainFriendlist返回之前解雇结果(并触发UIDisplayFriends(味精),我需要取消在飞行中的请求。我一直有的问题是,他们bui升起,然后突然重复触发函数UIDisplayFriends。
非常感谢您,并建议有利于太
我喜欢你对延迟所做的事情,这很好。但是,如果用户是一个缓慢的作家,那么请求堆积起来还是没有风险,每次击键都会触发一个新的ajax请求? –
它仍然是一个风险,所以你会想要应用这两种策略,取消旧的查询和上述方法来减少服务器调用。第三个屏幕将验证输出是否仍然匹配请求。 –
非常好。谢谢,这是非常丰富的 – TaylorMac