2012-09-18 102 views
2

我正在构建一个Web应用程序,用户可以在其中搜索位置,并且可能的位置是从数字大约为10,000的数据库中抽取的。我想为此使用jQuery UI自动完成插件,并且想知道将10,000个网站加载到它所搜索的数组中是否可行。如果不是我能做些什么来使它工作并加速。巨大阵列的自动完成

谢谢!

回答

4

您可能不希望向每个浏览器发送10,000个位置。检查出:http://jqueryui.com/demos/autocomplete/#remote

jquery将发送部分字符串到服务器,一旦它传递2个字符(在该示例中)。然后你发回10个左右的比赛。随着用户键入更多字符,匹配会更加精炼,直到用户看到他们想要的。

我和子这样做也匹配,虽然速度快,典型的方式做,这是通过匹配字符串的开始。

在服务器端,您可能想要以某种方式缓存匹配项。

+0

啊好吧,让更多的意义,谢谢! – clifgray

+0

没问题。对于服务器上的数据结构,我使用了memcache(任何类型的临时/有限内存缓存都可以工作),并保存搜索特定子字符串的结果。如果你想要看起来/这成为一个瓶颈,那么你可以使用trie或类似的。 http://en.wikipedia.org/wiki/Trie –