到处都是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 相关文章推荐
JScript中的undefined和&quot;undefined&quot;的区别
Mar 08 Javascript
50个比较实用jQuery代码段
Sep 18 Javascript
JS实现图片横向滚动效果示例代码
Sep 04 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
Feb 20 Javascript
javascript实现动态统计图开发实例
Nov 21 Javascript
Sort()函数的多种用法
Mar 20 Javascript
JQuery和HTML5 Canvas实现弹幕效果
Jan 04 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
Mar 01 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
Aug 28 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
May 22 Javascript
原生js实现随机点名
Jul 05 Javascript
ztree+ajax实现文件树下载功能
May 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模板类代码
2008/09/07 PHP
深入PHP中的HashTable结构详解
2013/06/13 PHP
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
PHP微信红包生成代码分享
2016/10/06 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
php基于协程实现异步的方法分析
2019/07/17 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
2020/04/06 PHP
js三种排序算法分享
2012/08/16 Javascript
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
Javascript ES6中数据类型Symbol的使用详解
2017/05/02 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
深入浅析Node.js 事件循环、定时器和process.nextTick()
2018/10/22 Javascript
javascript实现京东登录显示隐藏密码
2020/08/02 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
python读写文件操作示例程序
2013/12/02 Python
python实现多线程采集的2个代码例子
2014/07/07 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
2017/06/02 Python
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
利用python实现AR教程
2019/11/20 Python
Python使用GitPython操作Git版本库的方法
2020/02/29 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
竞争上岗实施方案
2014/03/21 职场文书
公司请假条范文
2014/04/11 职场文书
财产分割协议书范本
2014/11/03 职场文书
公务员政审材料
2014/12/23 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
预备党员考察意见范文
2015/06/01 职场文书
党支部考察意见范文
2015/06/02 职场文书
感恩教师主题班会
2015/08/12 职场文书
高三物理教学反思
2016/02/20 职场文书
php微信小程序解包过程实例详解
2021/03/31 PHP
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS