jquery - 委托(delegate)是最快的绑定(bind)方式吗?

标签 jquery performance

有人可以解释为什么委托(delegate)看起来比别名绑定(bind)或 on() 更快吗?

这是一个测试用例:

jsPerf

$('p').on('click',$.noop); //80% slower

$('p').click($.noop); //84% slower

$(document).delegate("p", "click",$.noop); //fastest

检查jquery源,似乎在绑定(bind)任何事件之前,jquery检查委托(delegate)。

这是正确的说法还是还有其他内容?

最佳答案

您犯的错误是认为只有一个 p 元素。

我又添加了一个测试,只有console.log($('p').length);,结果显示测试中可见7个p,其可见性显然不受限制到您在准备代码中构建的 HTML。

这意味着前两个函数必须再进行 7 次绑定(bind)。

关于jquery - 委托(delegate)是最快的绑定(bind)方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16044643/

相关文章:

c++ - fstream.write() 卡住了很长时间?

javascript - 如何使用 .on ('click' 收集 jquery 中的随机 id )

java - ExecutorService 令人惊讶的性能盈亏平衡点——经验法则?

javascript - 从 HTML 字符串中提取数字然后附加到 URL

javascript - 我可以通过不在每次需要访问元素时都调用 jQuery 来节省开销吗?

javascript - 为什么在这个 Immutable JS 测试中 equals 很慢?

java - 使用 SQL Server 2005/2008 的最新 jdbc 驱动程序时,准备好的语句、 View 和存储过程的性能比较如何?

python - 测试回文的各种方法的性能 [Python]

javascript - 预加载图像以稍后在 jQuery 的点击事件中显示

javascript - 与语义 UI 侧边栏作斗争