【发布时间】:2015-07-24 05:53:51
【问题描述】:
我有一个输入文本框,它使用 Autocompleter Plugin 用于 Mootools 通过 AJAX 自动填充。
我目前正在使用“keyup”事件通过 AJAX 获取结果。 它可以工作,但我觉得它充其量只是有点笨拙,因为每次键盘按下都会产生一个 AJAX 请求。
我宁愿在用户完成输入后只发出 ONE AJAX 请求,就像用户暂停一会儿之后一样。
我尝试了 'change' 事件,但更糟糕的是,我不得不点击离开输入文本框以发出 AJAX 请求,然后再次点击输入文本框让“onComplete”启动。
这是我的代码:
input.addEvent('keyup', function(e) {
new Autocompleter.Request.JSON(input.getProperty('id'), url, {
'postVar': 'search',
'maxChoices': 6,
'overflow': false,
'selectMode': 'pick',
'delay': 100,
'forceSelect': false,
onRequest: function() {
// do nothing
},
onComplete: function() {
// do nothing
}
});
});
希望你们能理解我的问题。
谢谢!
【问题讨论】:
-
@sergio 所说的是正确的方法。 debounce - 您也可以将键查找缓存作为一个小哈希图引入,以便保存对您已经查询的字符串的重复调用。
标签: javascript ajax autocomplete mootools