Jquery在大型数组上自动完成

时间:2010-10-05 16:45:57

标签: javascript jquery autocomplete jquery-autocomplete

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

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

问题是,当我开始输入时,需要花费很多时间(有时会崩溃浏览器),直到显示结果。

我该怎么办?

由于

3 个答案:

答案 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 
});