到处都是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如何实现点击时高亮显示代码
Jan 22 Javascript
jquery动态改变form属性提交表单
Jun 03 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
Mar 27 Javascript
jQuery插件StickUp实现网页导航置顶
Apr 12 Javascript
js基础知识(公有方法、私有方法、特权方法)
Nov 06 Javascript
Jquery ajax请求导出Excel表格的实现代码
Jun 08 Javascript
ajax请求data遇到的问题分析
Jan 18 Javascript
浅析vue深复制
Jan 29 Javascript
JS中数据结构之栈
Jan 01 Javascript
JavaScript获取某一天所在的星期
Sep 05 Javascript
js实现数字滚动特效
Dec 16 Javascript
浅谈vue-props的default写不写有什么区别
Aug 09 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
php switch语句多个值匹配同一代码块的实现
2014/03/03 PHP
js+php实现静态页面实时调用用户登陆状态的方法
2015/01/04 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
jQuery $.each遍历对象、数组用法实例
2015/04/16 Javascript
基于jQuery实现咖啡订单管理简单应用
2017/02/10 Javascript
vue登录路由验证的实现
2017/12/13 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
2019/02/22 Javascript
Angular8基础应用之表单及其验证
2019/08/11 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
js实现淘宝浏览商品放大镜功能
2020/10/28 Javascript
[03:00]2014DOTA2国际邀请赛 Titan淘汰潸然泪下Ohaiyo专访
2014/07/15 DOTA
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
Python简单实现enum功能的方法
2016/04/25 Python
python中os模块详解
2016/10/14 Python
小白如何入门Python? 制作一个网站为例
2018/03/06 Python
基于python实现名片管理系统
2018/11/30 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
python安装读取grib库总结(推荐)
2020/06/24 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
法国大使拉杆箱官网:DELSEY Paris
2018/03/20 全球购物
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
怎样写留学自荐信
2013/11/11 职场文书
数控机床专业自荐信
2014/05/19 职场文书
上班迟到检讨书
2014/09/15 职场文书
清洁工岗位职责
2015/02/13 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js
python实现简单聊天功能
2021/07/07 Python