【问题标题】:How to implement debounce in typeahead.js?如何在 typeahead.js 中实现去抖动?
【发布时间】:2017-10-10 09:30:24
【问题描述】:
我正在使用 typeahead.js 编写搜索功能。我试图弄清楚如何为搜索功能实现去抖动。我浏览了预先输入的文档,但找不到任何相关信息。如何在预输入中实现去抖动?代码如下所示。
$('input.typeahead').typeahead({
name: 'movies',
remote: 'http://localhost:3000/searchMovie?key=%QUERY',
limit: 10
});
【问题讨论】:
标签:
javascript
jquery
typeahead.js
debounce
【解决方案1】:
如果您将 Bloodhound 与 twitter 的 typeahead.js 库一起使用,则可以使用本机选项来消除远程查找的输入抖动。
bloodhound remote twitter typeahead doc on github
var my_bloodhound = new Bloodhound({
name : 'search_filter_' + my_filter,
datumTokenizer : Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer : Bloodhound.tokenizers.whitespace,
limit : 20,
prefetch : {
url : '/my_search.php?filter=' + my_filter,
filter : myFilterSearchTypeaheadResponse
},
remote : {
wildcard : 'LOOKUP',
url : '/my_search.php?filter=' + my_filter + '&query=LOOKUP',
rateLimitBy : 'debounce',
rateLimitWait : 600,
filter : myFilterSearchTypeaheadResponse
}
});
my_bloodhound.clearPrefetchCache();
my_bloodhound.clearRemoteCache();
my_bloodhound.initialize();