JS控件autocomplete 0.11演示及下载 1月5日已更新


Posted in Javascript onJanuary 09, 2007

1月5日已更新

修复自动完成文本框焦点移失,自动完成容器不能消失的bug
增加expandAllItem方法,双击时可出现全部的item,详情请看示例
增加customStyle示例,该示例演示了如何对autocomplete控件进行css美化,见autocomplete_custom的css文件

演示及下载:
http://www.never-online.net/code/neverModules/autocomplete/

功能较上一版本的改进和功能:
1。匹配速度的提高。
2。加入ignoreCase属性(为false时,将区分大小写,默认为true)
3。加入ignoreWhere属性(为true时,匹配结果将使用贪婪匹配,即整个字符串中只要有输入的字符,将把dataSource内容送入匹配结果中)
4。按esc返回。
5。兼容IE6.0, Opera9.0, Mozilla Firefox1.5
6。可手动清空dataSource数据,或动态赋值给dataSource。方便的进行AJAX,详细请看示例。
7。highlighted属性(默认为true,大数据量时,建议设置为false)。
8。在IE中,弥补div被select控件遮挡。详细请看第一个示例。
9。方向键支持。

思路以及参考:

初始化时,我把所有的数据都一次用join("")生成dataSource字符串(我在字符串字使用的html都尽量的简短,使之能够以最少的字符串生成数据),之后用正则来匹配。感觉这已经在速度上是很快的了。

虽然range功能还没有加进去,但基本的已经足够了。速度还算理想。现在发现一个速度问题就是,如果要在Opera,Mozilla,IE里充分利用其内核的效率,那么结果将是代码也许会大大的加长。毕竟不同内核之间的效率是大不一样的。

兼容性与效率同样也是一个矛盾的问题。用insertAdjanceHTML这个方法,是在大数数量情况下,插入一个字符串的一个简单兼容方法之一。

还有一个就是把highlight加入的问题,用了join之后,要加亮,必须再次回溯,从而相当于进行了两次匹配。这个也是效率的问题之一。所以建议大数据量情况下,把highlighted属性设为false。这样效率理论上说,应该可以提高40%左右的速度。

Javascript 相关文章推荐
js 实现的可折叠留言板(附源码下载)
Jul 01 Javascript
教你使用javascript简单写一个页面模板引擎
May 05 Javascript
js中日期的加减法
May 06 Javascript
JavaScript ES6中CLASS的使用详解
Nov 22 Javascript
js事件委托和事件代理案例分享
Jul 25 Javascript
详解Vue前端生产环境发布配置实战篇
May 07 Javascript
vue图片加载失败时用默认图片替换的方法
Aug 29 Javascript
原生javascript制作的拼图游戏实现方法详解
Feb 23 Javascript
vue+AI智能机器人回复功能实现
Jul 16 Javascript
解决vue中el-tab-pane切换的问题
Jul 19 Javascript
JS新手入门数组处理的实用方法汇总
Apr 07 Javascript
javascript中Set、Map、WeakSet、WeakMap区别
Dec 24 Javascript
根据分辩率调用不同的CSS.
Jan 08 #Javascript
如何用javascript判断录入的日期是否合法
Jan 08 #Javascript
[IE&FireFox兼容]JS对select操作
Jan 07 #Javascript
javascript中的对象和数组的应用技巧
Jan 07 #Javascript
JavaScript For Beginners(转载)
Jan 05 #Javascript
JavaScript的目的分析
Jan 05 #Javascript
关于JavaScript的gzip静态压缩方法
Jan 05 #Javascript
You might like
php常用表单验证类用法实例
2015/06/18 PHP
无阻塞加载脚本分析[全]
2011/01/20 Javascript
Eval and new funciton not the same thing
2012/12/27 Javascript
input:checkbox多选框实现单选效果跟radio一样
2014/06/16 Javascript
js实现仿QQ秀换装效果的方法
2015/03/04 Javascript
jQuery在线选座位插件seat-charts特效代码分享
2015/08/27 Javascript
JavaScript必看小技巧(必看)
2016/06/07 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
jQuery 实现图片的依次加载图片功能
2017/07/06 jQuery
Vue完整项目构建(进阶篇)
2018/02/10 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
axios post提交formdata的实例
2018/03/16 Javascript
jQuery中图片展示插件highslide.js的简单dom
2018/04/22 jQuery
ios中视频的最后一桢问题解决
2019/05/14 Javascript
js常用正则表达式集锦
2019/05/17 Javascript
[01:33:07]VGJ.T vs Newbee Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python交换变量
2008/09/06 Python
使用Python实现BT种子和磁力链接的相互转换
2015/11/09 Python
python更改已存在excel文件的方法
2018/05/03 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
2019/07/25 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
python 用pandas实现数据透视表功能
2020/12/21 Python
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
客服主管岗位职责
2013/12/13 职场文书
市场营销专业个人求职信范文
2013/12/14 职场文书
房屋买卖授权委托书
2014/09/27 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
《绝招》教学反思
2016/02/20 职场文书
Mysql 设置boolean类型的操作
2021/06/04 MySQL
Python制作表白爱心合集
2022/01/22 Python
解决MySQL报“too many connections“错误
2022/04/19 MySQL