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