我正在使用Jquery自动完成功能,本地数组大小约为5000,每个单词都是~10个字符。 我正在初始化这样的对象:
.autocomplete({matchContains: true, minLength: 3, delay: 700, source: array1, max: 10, highlight: true })
问题是,当我开始输入时,需要花费很多时间(有时会崩溃浏览器),直到显示结果。
我该怎么办?
由于
答案 0 :(得分:2)
您可以使用AJAX来获取数组,而不是将其放入HTML中,在查询服务器之前增加延迟和所需的minLength
以减少匹配。
答案 1 :(得分:1)
我会像Darin Dimitrov那样说,但我也会在服务器端的快速linq语句中做一个.Take(10)(或一些听起来不错的任意数字)。这会减少结果集,并且在用户继续输入时仍会变得更准确。
答案 2 :(得分:0)
您使用的是标准jQuery autocomplete plugin吗?如果是这样,我不熟悉您使用的选项参数“source”。
该插件的正确语法是:autocomplete( url or data, [options] )
。听起来你的版本使用'source'选项参数,(虽然在崩溃浏览器时)所以我很困惑。如果浏览器崩溃,我希望问题与javascript有关。
我建议尝试:
$('whatever').autocomplete(array1,{
matchContains: true,
minLength: 3,
delay: 700,
max: 10,
highlight: true
});