javascript - 这样使用jQuery会不会减慢页面显示次数?

标签 javascript jquery performance optimization event-handling

我在页面上有大约 300 多个操作链接,在 document.onready 事件触发后我将处理程序连接到这些链接(使用 jQuery):

$('a.cmd').click (function() { ... do stuff ... });

onclick 处理程序合并到 HTML 中,而不是在创建 DOM 元素后让 jQuery 附加它们,是否更有效?

<a onclick="... do stuff ...">

最佳答案

会减慢速度吗?是的,绑定(bind)需要时间,无论它需要多少一些时间。但是,有一些方法可以真正改善您的情况。

实际上使用 .live() 更好或 .delegate() 处理程序在这里,因此您的初始绑定(bind)成本显着减少,如下所示:

$('a.cmd').live('click', function() { /* do stuff */ });

或者更好:

$(document.body).delegate('a.cmd', 'click', function() { /* do stuff */ });

在这两种情况下,我们不是将处理程序附加到每个 DOM 元素,而是将一个事件处理程序附加到 document (或者在第二个示例中为 <body>)。这意味着页面的启动成本显着降低。

关于javascript - 这样使用jQuery会不会减慢页面显示次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4377728/

相关文章:

performance - 将数字拆分为总和组件

介于或大于 > 条件下的 MySQL 查询优化

javascript - Bootstrap 'shown.bs.tab' 事件未以编程方式触发显示选项卡(使用选项卡 ('show' ))

jquery - 悬停时的 CSS 更改在非空 div 上显得太晚了

cocoa - 核心数据 - 我可以将计算值存储为持久属性吗?

javascript - if else 语句在三种可能的情况下使用 document.getElementsByClassName

javascript - 从 mysql 查询设置的 php 变量更改图像的 'src' 属性

javascript - 如何使用正则表达式从字符串中分割字符?

javascript - 开关函数在未调用时触发,默认情况下在使用 addEventListener 时也不会阻止

javascript - 如何在 Controller 中放置确认警报并在 yii 中取消时重定向到特定链接