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 相关文章推荐
jQuery中与toggleClass等价的程序段 以及未来学习的方向
Mar 18 Javascript
js设置document.domain实现跨域的注意点分析
May 21 Javascript
JavaScript中的getTime()方法使用详解
Jun 10 Javascript
jQuery时间轴插件使用详解
Jul 16 Javascript
SelecT下拉框选中和取值的解决方法
Nov 22 Javascript
jQuery Plupload上传插件的使用
Apr 19 jQuery
详解angular 中的自定义指令之详解API
Jun 20 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
Jul 03 Javascript
关于页面刷新vuex数据消失问题解决方案
Jul 03 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
Jan 10 Javascript
Vue项目中使用Vux的安装过程
May 01 Javascript
小程序开发基础之view视图容器
Aug 21 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购物网站支付paypal使用方法
2010/11/28 PHP
php删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
PHP中exec与system用法区别分析
2014/09/22 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
JavaScript 异步调用框架 (Part 2 - 用例设计)
2009/08/03 Javascript
js的逻辑运算符 ||
2010/05/31 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
A标签中通过href和onclick传递的this对象实现思路
2013/04/19 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
2020/07/09 Javascript
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
python生成器表达式和列表解析
2016/03/10 Python
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
python实现txt文件格式转换为arff格式
2018/05/31 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
Python八皇后问题解答过程详解
2019/07/29 Python
解决python打开https出现certificate verify failed的问题
2020/09/03 Python
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
大学学年自我鉴定
2013/10/28 职场文书
集体婚礼证婚词
2014/01/13 职场文书
军人违纪检讨书
2014/02/04 职场文书
乡镇干部党的群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
新郎答谢词
2015/01/04 职场文书
继承权公证书范本
2015/01/23 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
总结会主持词
2015/07/02 职场文书
用Python将GIF动图分解成多张静态图片
2021/06/11 Python
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers
基于Python实现nc批量转tif格式
2022/08/14 Python