我有一个实时搜索方法,可以在您输入文本框时进行搜索。它使用的服务需要相当长的时间,所以我决定只在用户暂停或停止输入n秒(例如0.5秒)时才调用搜索服务。虽然这样做
j$132('#AdvanceSearch table:first input').unbind('keyup').keyup(function () {
window.setTimeout(function () {
LoadAdvanceSearch();
}, 500);
});
它等待500毫秒这很好但是对于每个键盘它等待然后发送另一个服务电话。
在onkeyup下有一个技巧,它只在用户完成输入时调用该方法一次。
答案 0 :(得分:4)
我会做这样的事情;
var keyTimer;
j$132('#AdvanceSearch table:first input').keyup(function () {
if(keyTimer){
clearTimeout(keyTimer);
}
keyTimer = setTimeout(function () {
LoadAdvanceSearch();
}, 500);
});
如果尚未触发,它将每次清除超时。因此,只有当用户停止输入半秒钟时才会运行。