2010-10-05 19 views
0

我正在使用jquery自動完成,大小約爲5000的本地數組,每個單詞都是〜10個字符。 我初始化對象是這樣的:在大陣列上的jquery自動完成

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

的問題是,當我開始打字,它需要大量的時間,直到顯示效果(有時崩潰的瀏覽器)。

我該怎麼辦?

感謝

回答

2

你可以使用AJAX,以減少比賽查詢服務器之前將數組提取的,而不是把它變成了HTML,增加延遲和所需minLength

0

您是否在使用標準jQuery autocomplete plugin?如果是這樣,我不熟悉您使用的選項參數「源」。

該插件的正確語法是:autocomplete(url or data, [options])。這聽起來像你的版本與'source'選項參數一起工作(雖然在瀏覽器崩潰時),所以我很困惑。如果瀏覽器崩潰,我希望問題與JavaScript相關。

我建議嘗試:

$('whatever').autocomplete(array1,{ 
    matchContains: true, 
    minLength: 3, 
    delay: 700, 
    max: 10, 
    highlight: true 
}); 
1

像達林季米特洛夫說我會做,但我也做了。取(10)(或聽起來好給你一些任意數字)的快速LINQ聲明在服務器端。這會減少結果集,並且在用戶繼續輸入時仍然會變得更加準確。