到处都是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 相关文章推荐
javascript appendChild,innerHTML,join性能比较代码
Aug 29 Javascript
js 内存释放问题
Apr 25 Javascript
jquery插件制作 手风琴Panel效果实现
Aug 17 Javascript
使用javascipt---实现二分查找法
Apr 10 Javascript
JS Map 和 List 的简单实现代码
Jul 08 Javascript
jquery.post用法关于type设置问题补充
Jan 03 Javascript
jquery操作checkbox示例分享
Jul 21 Javascript
JavaScript中5种调用函数的方法
Mar 12 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
Jan 17 Javascript
jQuery实现的手风琴侧边菜单效果
Mar 29 jQuery
mui上拉加载更多下拉刷新数据的封装过程
Nov 03 Javascript
微信小程序收藏功能的实现代码
Jun 12 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
discuz加密解密函数使用方法和中文注释
2014/01/21 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
javascript 保存文件到本地实现方法
2012/11/29 Javascript
js图片自动切换效果处理代码
2013/05/07 Javascript
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
2013/07/17 Javascript
优化javascript的执行效率一些方法总结
2013/12/25 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
vuex的使用及持久化state的方式详解
2018/01/23 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
weui中的picker使用js进行动态绑定数据问题
2019/11/06 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
python抓取网页中的图片示例
2014/02/28 Python
python处理PHP数组文本文件实例
2014/09/18 Python
Python设计模式之观察者模式简单示例
2018/01/10 Python
Python Logging 日志记录入门学习
2018/06/02 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
Django更新models数据库结构步骤
2020/04/01 Python
python 错误处理 assert详解
2020/04/20 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
css3翻牌翻数字的示例代码
2020/02/07 HTML / CSS
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
竞选班干部演讲稿600字
2014/08/20 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
群众路线表态发言材料
2014/10/17 职场文书
2014年社区教育工作总结
2014/12/02 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
《天净沙·秋思》教学反思三篇
2019/11/02 职场文书
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS