将Jquery AutoComplete与字典列表一起使用

时间:2011-12-07 18:33:06

标签: javascript jquery

我有一个大约58040个单词的字典列表,我不认为jquery auto complete可以处理浏览器挂起的那么多单词。

列表是

words = ['axxx','bxxx','cxxx', an so on];

$(".CreateAddKeyWords input").autocomplete({ source: words });

我做错了什么

是否有其他可以使用的免费工具

修改

我正在使用.net并且我已经从数据库中检索了数据并且可以循环通过数据服务器端,但是如何将数据发回,如果json格式应该如何格式化?

4 个答案:

答案 0 :(得分:5)

  

是否有其他可以使用的免费工具

是的,您可以使用AJAX从remote datasource加载它们,而不是在HTML或javascript文件中硬编码58040个单词。基本上你将有一个服务器端脚本,当使用当前用户输入的查询将预过滤结果并将其发送到客户端以显示建议。

答案 1 :(得分:0)

您应该在搜索之前指定最小用户条目长度(因此不会使用1或2个字符进行查询)。

$(".CreateAddKeyWords input").autocomplete({ source: words, minLength: 3 });

浏览器可能会挂起,因为它试图搜索第一个不太有用的字符。大多数人认为~58k条目不是一个大数据集,特别是当你缩小2-3个字符的内容要求时。

答案 2 :(得分:0)

这太多的数据让你的网页加载它。将其限制为2个字母。

1)将自动完成最小长度设置为至少2

2)创建一个返回JSON数据的网页 - http://mydomain.com/words.php?q= {letters}
您可以在“包含”之前将过滤器排序为“开头”;或者你喜欢的任何变化。

将该页面用作远程数据源。设置最小长度后,自动完成知道何时查询新数据。

答案 3 :(得分:0)

我认为这是一个有趣的问题,并且破解了解决自动完成的后端服务。

我的代码位于https://github.com/badgerman/fastcgi/(查找complete.c),来自该存储库的快速而脏的javascript概念证明目前位于http://enno.kn-bremen.de/prefix.html(无法保证它将保持非常很久了,因为这是在我家的Raspberry Pi上运行的。)