分享下拉框智能提示算法改進,上萬條數據智能提示,所有瀏覽器包括IE不卡


最近做項目時候,被select的下拉提示搞煩了,破服務器響應速度賊慢,而下拉的數據又狂多,9k多行
用dynamicAjax分析,發現性能慢就慢在不斷的select.options的for遍歷循環上
索性不使用數組循環的方法跑suggest,改用字典算法
https://github.com/xueduany/KitJs/blob/master/KitJs/src/js/TreeDict.js
算法的testcase見http://xueduany.github.com/KitJs/KitJs/demo/TreeDict/demo.html

改進后,options的存儲方式變為

{

"0" : {

"1" : {

"1" : "a"

},

"2" : {

"5" : "b"

},

"3" : {

"2" : "c"

},

}

"1" : {

"1" : "9" : "d"

}

...

}

遍歷算法又O(n),縮小到f(n),理論上性能可以提高n次冪倍

經過測試,改過之后,suggest性能大幅提升,數據量上10w,chrome都不卡,ie只是略微有點卡,不過也在可以接受的方法

Demo圖片

demo地址 

http://xueduany.github.com/KitJs

注釋說明略顯粗糙,需要的兄弟可以線下聯系我


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM