到处都是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小框架 fly javascript framework
Nov 26 Javascript
JavaScript 面向对象的 私有成员和公开成员
May 13 Javascript
javascript下高性能字符串连接StringBuffer类
Aug 16 Javascript
学习js在线html(富文本,所见即所得)编辑器
Dec 18 Javascript
浏览器的JavaScript引擎的识别方法
Oct 20 Javascript
使用Raygun来自动追踪AngularJS中的异常
Jun 23 Javascript
JavaScript接口的实现三种方式(推荐)
Jun 14 Javascript
jQuery实现的瀑布流加载效果示例
Sep 13 Javascript
Angualrjs和bootstrap相结合实现数据表格table
Mar 30 Javascript
详解基于vue的服务端渲染框架NUXT
Jun 20 Javascript
小程序实现选择题选择效果
Nov 04 Javascript
vue3为什么要用proxy替代defineProperty
Oct 19 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
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
2011/07/01 PHP
PHP字符串word末字符实现大小写互换的方法
2014/11/10 PHP
php利用嵌套数组拼接与解析json的方法
2017/02/07 PHP
Linux下快速搭建php开发环境
2017/03/13 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
2017/10/23 PHP
php引用和拷贝的区别知识点总结
2019/09/23 PHP
PHP与Web页面的交互示例详解二
2020/08/04 PHP
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
2015/09/14 Javascript
Vue中v-show添加表达式的问题(判断是否显示)
2018/03/26 Javascript
JS遍历DOM文档树的方法实例详解
2018/04/03 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
2018/09/12 Javascript
JS数据类型STRING使用实例解析
2019/12/18 Javascript
Python高效编程技巧
2013/01/07 Python
用Python编写一个国际象棋AI程序
2014/11/28 Python
python同时给两个收件人发送邮件的方法
2015/04/30 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
Python之读取TXT文件的方法小结
2018/04/27 Python
Python中的元组介绍
2019/01/28 Python
Python 中使用 PyMySQL模块操作数据库的方法
2019/11/10 Python
基于python判断字符串括号是否闭合{}[]()
2020/09/21 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
大学生党课思想汇报
2013/12/29 职场文书
毕业自我鉴定怎么写
2014/03/25 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
设备收款委托书范本
2014/10/02 职场文书
三傻大闹宝莱坞观后感
2015/06/03 职场文书
欠条样本
2015/07/03 职场文书
python如何读取.mtx文件
2021/04/22 Python
Redis超详细讲解高可用主从复制基础与哨兵模式方案
2022/04/07 Redis