到处都是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 相关文章推荐
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
Apr 27 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
May 05 Javascript
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
Jul 31 Javascript
JS中typeof与instanceof之间的区别总结
Nov 14 Javascript
导入extjs、jquery 文件时$使用冲突问题解决方法
Jan 14 Javascript
JavaScript实现Java中Map容器的方法
Oct 09 Javascript
JavaScript输入框字数实时统计更新
Jun 17 Javascript
jQuery实现简单的计时器功能实例分析
Aug 29 jQuery
vue 纯js监听滚动条到底部的实例讲解
Sep 03 Javascript
node.js监听文件变化的实现方法
Apr 17 Javascript
JS中的函数与对象的创建方式
May 12 Javascript
微信小程序绘制半圆(弧形)进度条
Nov 18 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模板引擎Smarty中变量的使用方法示例
2016/04/11 PHP
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
PHP微信开发之微信录音临时转永久存储
2018/01/26 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
学习jquery之一
2007/04/27 Javascript
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
jQuery LigerUI 使用教程入门篇
2012/01/18 Javascript
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
一个JavaScript变量声明的知识点
2013/10/28 Javascript
js实现点击左右按钮轮播图片效果实例
2015/01/29 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
使用js复制链接中的部分文字的方法
2015/07/30 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
Javascript之面向对象--接口
2016/12/02 Javascript
vue中父子组件注意事项,传值及slot应用技巧
2018/05/09 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
微信小程序实现批量倒计时功能
2020/11/01 Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
2020/06/11 Javascript
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
[52:27]2018DOTA2亚洲邀请赛 3.31 小组赛B组 paiN vs Secret
2018/04/01 DOTA
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
Python在线运行代码助手
2016/07/15 Python
Python遍历pandas数据方法总结
2018/02/09 Python
Python高级特性切片(Slice)操作详解
2018/09/27 Python
python requests.post带head和body的实例
2019/01/02 Python
PyQt5显示GIF图片的方法
2019/06/17 Python
pytorch 多分类问题,计算百分比操作
2020/07/09 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
计算机专业学生的自我评价
2013/12/15 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
韩语专业职业生涯规划范文:成功之路就在我们脚下
2014/09/11 职场文书
2014年行政部工作总结
2014/11/19 职场文书
乡镇法制宣传日活动总结
2015/05/05 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫