前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jquery事件绑定性能测试

jquery事件绑定性能测试

作者头像
dys
发布2018-04-02 15:57:04
1.2K0
发布2018-04-02 15:57:04
举报
文章被收录于专栏:性能与架构

使用jquery对节点绑定事件时,例如绑定click事件,常用的方式有:

代码语言:javascript
复制
(1)$('x').click(function (){});
(2)$('x').delegate('childnode', 'click', function (){});

delegate委托方式是jquery后推出的,而且我们经常可以看到有文章推荐使用delegate,delegate方式相比直接绑定有什么优势呢?

测试

生成一万个 li 节点,对其进行 click 事件绑定,分别使用上面的两种方式,测出各自的执行事件

代码

这里使用php动态生成一万个li

代码语言:javascript
复制
<html>
<body>
<ul>
<?php for($i=0; $i<10000; $i++){?>
<li><?php echo $i; ?></li> 
<?php }?>
</ul>
<script src="js/jquery.js"></script>
<script type="text/javascript">
$(function (){
    var st=new Date().getTime();
    //方式一
//     $('li').click(function (){
//         alert(1);
//     });
    //方式二
//    $("ul").delegate("li","click",function(){ alert(1); })
    var st2=new Date().getTime() - st;
    alert(st2);
});
</script>
</body>
</html>

结果

每种方式执行3次,取平均值

方式一:104毫秒

方式二:2毫秒

可以看到,delegate的性能高效了很多

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档