2012-09-18 101 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 –