2010-10-05 40 views
0

我正在使用jquery自动完成,大小约为5000的本地数组,每个单词都是〜10个字符。 我初始化对象是这样的:在大阵列上的jquery自动完成

.autocomplete({matchContains: true, minLength: 3, delay: 700, source: array1, max: 10, highlight: true }) 

的问题是,当我开始打字,它需要大量的时间,直到显示效果(有时崩溃的浏览器)。

我该怎么办?

感谢

回答

2

你可以使用AJAX,以减少比赛查询服务器之前将数组提取的,而不是把它变成了HTML,增加延迟和所需minLength

0

您是否在使用标准jQuery autocomplete plugin?如果是这样,我不熟悉您使用的选项参数“源”。

该插件的正确语法是:autocomplete(url or data, [options])。这听起来像你的版本与'source'选项参数一起工作(虽然在浏览器崩溃时),所以我很困惑。如果浏览器崩溃,我希望问题与JavaScript相关。

我建议尝试:

$('whatever').autocomplete(array1,{ 
    matchContains: true, 
    minLength: 3, 
    delay: 700, 
    max: 10, 
    highlight: true 
}); 
1

像达林季米特洛夫说我会做,但我也做了。取(10)(或听起来好给你一些任意数字)的快速LINQ声明在服务器端。这会减少结果集,并且在用户继续输入时仍然会变得更加准确。