到处都是jQuery选择器的年代 不了解它们的性能,行吗


Posted in Javascript onJune 18, 2012

最近,我就对jQuery的选择器使用做了一些个小小的实验,用来说明jQuery的不同选择器在不同的情况下,哪个效率更高,更值得使用。

先在每个测试页面的head中引入google提供的jquery文件和用于测试的小插件firejspt。

<!-- 引入FireJSPT的库文件 --> 
<script type="text/javascript" src="firejspt.js"></script> 
<!-- 引入google提供的1.44版的jQuery的库文件,其实哪个版本都无所谓了,呵呵 --> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>

1. 最常用的id选择器和class选择器
将以下代码复制200次,置于body标签内。
<div id="ilian">比较id选择器和class选择器</div> 
<div class="ilian">比较id选择器和class选择器</div>

用于本次测试的JS代码如下:
function ilianTest01(){ 
$('#ilian').click(function() { alert('Hello World'); }); 
} function ilianTest02(){ 
$('.ilian').click(function() { alert('Hello World'); }); 
} 
/*调用2个函数进行测试*/ 
$(function(){ 
jspt.test(function(){ ilianTest01(); }); 
jspt.test(function(){ ilianTest02(); }); 
});

测试结果如下:

到处都是jQuery选择器的年代 不了解它们的性能,行吗

由图可以id选择器相比于class选择器的效率优势是非常地。。。。。

2. 在选择标签时,层级选择器用得也非常频繁,这次对比测试直接子标签符号“>”和children。

将以下代码放入body标签内,并将其中的li标签复制500次。

<ul id="ilian"> 
<li>比较直接子标签符号“>”和children</li> 
<li>比较直接子标签符号“>”和children</li> 
<li>比较直接子标签符号“>”和children</li> 
<!-- 省略497次 --> 
</ul>

用于本次测试的JS代码如下:
function ilianTest01(){ 
$('#ilian > li').click(function() { alert('Hello World'); }); 
} function ilianTest02(){ 
$('#ilian').children('li').click(function() { alert('Hello World'); }); 
} 
/*调用2个函数进行测试*/ 
$(function(){ 
jspt.test(function(){ ilianTest01(); }); 
jspt.test(function(){ ilianTest02(); }); 
});

测试结果:

到处都是jQuery选择器的年代 不了解它们的性能,行吗

由此可见children选择器要优于直接子标签符号选择器。
限于文章长度,本文只展示了最基本的测试,且以上测试,均是在简单环境中测试的,测试效果并不代表绝对的结论。

Javascript 相关文章推荐
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
Apr 14 Javascript
Firefox中使用outerHTML的2种解决方法
Jun 07 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
Jul 17 Javascript
使用node.js半年来总结的 10 条经验
Aug 18 Javascript
node.js中的fs.lchown方法使用说明
Dec 16 Javascript
JavaScript重载函数实例剖析
May 13 Javascript
js阻止浏览器默认行为触发的通用方法(推荐)
May 15 Javascript
Bootstrap3 Grid system原理及应用详解
Sep 30 Javascript
半个小时学json(json传递示例)
Dec 25 Javascript
详解基于angular路由的requireJs按需加载js
Jan 20 Javascript
vue中jsonp插件的使用方法示例
Sep 10 Javascript
ant design charts 获取后端接口数据展示
May 25 Javascript
jquery图片延迟加载 前端开发技能必备系列
Jun 18 #Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
Jun 18 #Javascript
Jquery上传插件 uploadify v3.1使用说明
Jun 18 #Javascript
uploadify 3.0 详细使用说明
Jun 18 #Javascript
通过Javascript创建一个选择文件的对话框代码
Jun 16 #Javascript
通过Javascript将数据导出到外部Excel文档的函数代码
Jun 15 #Javascript
精心挑选的15个jQuery下拉菜单制作教程
Jun 15 #Javascript
You might like
php中防止伪造跨站请求的小招式
2011/09/02 PHP
php通过递归方式复制目录和子目录的方法
2015/03/13 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
统计jQuery中各字符串出现次数的工具
2012/05/03 Javascript
解析使用js判断只能输入数字、字母等验证的方法(总结)
2013/05/14 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
JavaScript中length属性的使用方法
2015/06/05 Javascript
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
RGB和YUV 多媒体编程基础详细介绍
2016/11/04 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
2018/12/11 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
2019/09/12 Javascript
javascript自定义右键菜单插件
2019/12/16 Javascript
python将ip地址转换成整数的方法
2015/03/17 Python
详解在Python程序中自定义异常的方法
2015/10/16 Python
python 调用c语言函数的方法
2017/09/29 Python
浅谈python中requests模块导入的问题
2018/05/18 Python
python生成大写32位uuid代码
2020/03/03 Python
Python编写单元测试代码实例
2020/09/10 Python
Python Selenium操作Cookie的实例方法
2021/02/28 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
html5 跨文档消息传输示例探讨
2013/04/01 HTML / CSS
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
英文道歉信
2015/01/20 职场文书
大学生如何逃脱“毕业季创业队即散伙”魔咒?
2019/08/19 职场文书
分析设计模式之模板方法Java实现
2021/06/23 Java/Android
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android
OpenCV实现反阈值二值化
2021/11/17 Java/Android
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS