嗨,我正在我的webapp中实现实时搜索(=键入时搜索)功能.
目前我正在使用keyup事件通过ajax post发送搜索请求,例如
$('#SearchField').keyup(function(e) {
$.post(
...
);
});
但是这会导致某种滞后问题,在某些情况下,当我搜索时,例如在“问题”之后,“专业”的响应在“问题”的响应之后显示出来,并以一种方式覆盖正确的搜索结果结果很好.
什么是打击这种行为的好方法?
TIA
最佳答案
你可以中止以前的请求
var xhr = null;
$('#SearchField').keyup(function(e) {
if (xhr !== null) xhr.abort ();
xhr = $.post(
...
);
});
或为每个请求设置分配ID.
当请求完成时,如果更大的id已经返回,则忽略答案.
否则,存储id.