Jquery 在JSON对象上加速Twitter引导的Typeahead
所以,我正在使用Twitter引导的Typeahead启动一个字典web应用程序。dictionary对象是5000个条目。根据我目前的代码Jquery 在JSON对象上加速Twitter引导的Typeahead,jquery,twitter-bootstrap,autocomplete,Jquery,Twitter Bootstrap,Autocomplete,所以,我正在使用Twitter引导的Typeahead启动一个字典web应用程序。dictionary对象是5000个条目。根据我目前的代码 $('#dictionary').typeahead({source: function(query, process){ $.getJSON('dictionary.json', function(data){ dict = data; var words = _.keys(dict); proc
$('#dictionary').typeahead({source: function(query, process){
$.getJSON('dictionary.json', function(data){
dict = data;
var words = _.keys(dict);
process(words);
});
}, minLength: 2});
每次访问typeahead元素字典时,我都会执行get。当条目进入搜索框时,这会使查询速度非常快,但会使typeahead的运行速度太慢,因为获取dictionary.json 1+MB并解析它需要花费很长时间
显然,这一策略是错误的
以下是我的想法:
1.将get放入预加载变量中,并在加载dictionary.json后接受加载的页面。
2.使用dictionary.json中的键值创建一个单独的数组,并通过get预加载这个数组,这样会更小更快
我可以接受负载需要更长时间。我同意搜索需要更长时间。但是,从UI的角度来看,让typeahead中的自动完成花费很长时间是不可行的。显然,google等公司的大孩子们有一个诀窍:google不需要太长时间就可以预加载,而且在autocomplete运行的过程中,搜索速度一直很快
那么,你们觉得我的上述想法怎么样?
你还有其他建议吗
非常感谢您的帮助。也许可以让您的后端脚本处理输入查询并返回较短的数据列表 通过引导传递查询输入,服务器代码可以根据迄今为止收到的输入返回一个较短的列表