我正在使用jquery自动完成,大小约为5000的本地数组,每个单词都是〜10个字符。 我初始化对象是这样的:在大阵列上的jquery自动完成
.autocomplete({matchContains: true, minLength: 3, delay: 700, source: array1, max: 10, highlight: true })
的问题是,当我开始打字,它需要大量的时间,直到显示效果(有时崩溃的浏览器)。
我该怎么办?
感谢
我正在使用jquery自动完成,大小约为5000的本地数组,每个单词都是〜10个字符。 我初始化对象是这样的:在大阵列上的jquery自动完成
.autocomplete({matchContains: true, minLength: 3, delay: 700, source: array1, max: 10, highlight: true })
的问题是,当我开始打字,它需要大量的时间,直到显示效果(有时崩溃的浏览器)。
我该怎么办?
感谢
你可以使用AJAX,以减少比赛查询服务器之前将数组提取的,而不是把它变成了HTML,增加延迟和所需minLength
。
您是否在使用标准jQuery autocomplete plugin?如果是这样,我不熟悉您使用的选项参数“源”。
该插件的正确语法是:autocomplete(url or data, [options])
。这听起来像你的版本与'source'选项参数一起工作(虽然在浏览器崩溃时),所以我很困惑。如果浏览器崩溃,我希望问题与JavaScript相关。
我建议尝试:
$('whatever').autocomplete(array1,{
matchContains: true,
minLength: 3,
delay: 700,
max: 10,
highlight: true
});
像达林季米特洛夫说我会做,但我也做了。取(10)(或听起来好给你一些任意数字)的快速LINQ声明在服务器端。这会减少结果集,并且在用户继续输入时仍然会变得更加准确。