我有一个搜索文本框,在按键时按下AJAX调用以返回输入文本的搜索结果.这导致每个按键都进行AJAX调用.
例如,如果我输入机场:
我得到7个ajax请求,每个请求分别搜索a,ai,air,airp,airpo,airpor,airport – 但是问题是它们可能都是一个接一个地开始但不一定以相同的顺序结束我没有收到错误订单的结果,即我可能已经写了机场并收到了机场的结果,以便稍后收到airpo的结果.
我如何在jQuery中处理这个?
更新:
定时器延迟为3秒 – 但问题在于确保在发出一个AJAX请求时,另一个请求取消了先前的请求,依此类推.
我怎么能在代码中这样做?
@H_404_14@解决方法:在延迟时触发ajax调用 – 将此与上面的abort()代码结合使用:
var typeDelay = function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
}
}();
$("#searchField").keypress(function(){
typeDelay(function(){
// your ajax search here, with a 300 ms delay...
}, 300);
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。