我正在使用jquery自動完成,大小約爲5000的本地數組,每個單詞都是〜10個字符。 我初始化對象是這樣的:在大陣列上的jquery自動完成
.autocomplete({matchContains: true, minLength: 3, delay: 700, source: array1, max: 10, highlight: true })
的問題是,當我開始打字,它需要大量的時間,直到顯示效果(有時崩潰的瀏覽器)。
我該怎麼辦?
感謝
我正在使用jquery自動完成,大小約爲5000的本地數組,每個單詞都是〜10個字符。 我初始化對象是這樣的:在大陣列上的jquery自動完成
.autocomplete({matchContains: true, minLength: 3, delay: 700, source: array1, max: 10, highlight: true })
的問題是,當我開始打字,它需要大量的時間,直到顯示效果(有時崩潰的瀏覽器)。
我該怎麼辦?
感謝
你可以使用AJAX,以減少比賽查詢服務器之前將數組提取的,而不是把它變成了HTML,增加延遲和所需minLength
。
您是否在使用標準jQuery autocomplete plugin?如果是這樣,我不熟悉您使用的選項參數「源」。
該插件的正確語法是:autocomplete(url or data, [options])
。這聽起來像你的版本與'source'選項參數一起工作(雖然在瀏覽器崩潰時),所以我很困惑。如果瀏覽器崩潰,我希望問題與JavaScript相關。
我建議嘗試:
$('whatever').autocomplete(array1,{
matchContains: true,
minLength: 3,
delay: 700,
max: 10,
highlight: true
});
像達林季米特洛夫說我會做,但我也做了。取(10)(或聽起來好給你一些任意數字)的快速LINQ聲明在服務器端。這會減少結果集,並且在用戶繼續輸入時仍然會變得更加準確。