哪个更高性能:jQuery.live(),还是内联的onevent属性?

时间:2011-08-11 21:46:31

标签: javascript jquery iphone events webkit

我正在构建一个包含大量事件绑定的HTML5移动应用。因为它还有一个由于数据绑定而经常更改的大型DOM,事件的直接绑定( jQuery.bind addEventListener )可能不是一个好的选择。有什么权衡:

// jQuery.bind
$("div").live("click", fnName);

// Inline
<div onclick="fnName(this);"></div>

虽然我对Mobile WebKit的具体情况最感兴趣,但我有兴趣了解其他浏览器的情况。

2 个答案:

答案 0 :(得分:2)

据说

.delegate().live()更快,它可能是您的选择。您可以阅读更多here

答案 1 :(得分:2)

.live()示例比onclick版本更快,使用的内存更少。

每次执行onclick="fnName(this);"时,您都在创建一个新功能,并且数千个相同的功能具有非零内存占用。如果您使用onclick,则创建每个div也需要更多时间。

.live()和.delegate之间的区别可能很小,但你应该尽可能使用.delegate()。