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 相关文章推荐
event.srcElement+表格应用
Aug 29 Javascript
javascript 面向对象全新理练之继承与多态
Dec 03 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
Mar 14 Javascript
js获取ajax返回值代码
Apr 30 Javascript
jquery查找tr td 示例模拟
May 08 Javascript
javascript框架设计读书笔记之种子模块
Dec 02 Javascript
js实现的页面矩阵图形变换特效
Jan 26 Javascript
JavaScript中各种引用类型的常用操作方法小结
May 05 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
Oct 29 Javascript
基于JavaScript实现飘落星星特效
Aug 10 Javascript
angular中不同的组件间传值与通信的方法
Nov 04 Javascript
js实现文件上传功能 后台使用MultipartFile
Sep 08 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 fread读取文件注意事项
2016/09/24 PHP
PHP解压ZIP文件到指定文件夹的方法
2016/11/17 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
Bootstrap table的使用方法
2016/11/02 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
vue中使用sessionStorage记住密码功能
2018/07/24 Javascript
JavaScript作用域、闭包、对象与原型链概念及用法实例总结
2018/08/20 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
2019/08/20 Javascript
深入学习Vue nextTick的用法及原理
2019/10/08 Javascript
Python实现简单的可逆加密程序实例
2015/03/05 Python
Django模板Templates使用方法详解
2019/07/19 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
2019/09/07 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
python爬取抖音视频的实例分析
2021/01/19 Python
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
基于Python 函数和方法的区别说明
2021/03/24 Python
医学护理系毕业生求职信
2013/10/01 职场文书
酒吧副总经理岗位职责
2013/12/10 职场文书
六个一活动实施方案
2014/03/21 职场文书
技校毕业生自荐书
2014/05/23 职场文书
红头文件任命书范本
2014/06/05 职场文书
学生检讨书范文
2015/01/27 职场文书
2015年财务个人工作总结范文
2015/05/22 职场文书
vue响应式原理与双向数据的深入解析
2021/06/04 Vue.js