0

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

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

问题是,当我开始输入时,需要很长时间(有时浏览器崩溃)才能显示结果。

我能做些什么?

谢谢

4

3 回答 3

2

您可以使用 AJAX 来获取数组而不是将其放入 HTML,增加延迟和minLength查询服务器之前所需的时间,以减少匹配。

于 2010-10-05T16:48:42.810 回答
1

我会像 Darin Dimitrov 所说的那样做,但我也会在服务器端的快速 linq 语句中执行 .Take(10) (或一些听起来不错的任意数字)。这将减少结果集,并且随着用户继续键入仍然会变得更加准确。

于 2010-10-05T17:48:03.367 回答
0

你在使用标准的jQuery 自动完成插件吗?如果是这样,我不熟悉您使用的选项参数“source”。

该插件的正确语法是:autocomplete( url or data, [options] ). 听起来您的版本与“源”选项参数一起使用,(尽管在浏览器崩溃时)所以我很困惑。如果浏览器崩溃,我希望问题与 javascript 有关。

我建议尝试:

$('whatever').autocomplete(array1,{
    matchContains: true, 
    minLength: 3, 
    delay: 700,  
    max: 10, 
    highlight: true 
});
于 2010-10-05T17:28:24.337 回答