我在页面上有大约 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/