分享下拉框智能提示算法改进,上万条数据智能提示,所有浏览器包括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

注释说明略显粗糙,需要的兄弟可以线下联系我

转载于:https://www.cnblogs.com/xueduanyang/archive/2012/04/01/2429097.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值