2012-06-29 161 views
1

我想知道既有本地js和jquery事件处理程序,我应该选择哪一个内存消费/性能角度?说我有这个HTML代码,一个简单的按钮。jquery或js事件处理程序?

<button id="herp">derp</button> 

herp.onclick = function() 
{ 
    alert('hey'); 
} 

优于

$("#herp").click(function() 
{ 
    alert('hey'); 
}); 

回答

3

尽管这是邪恶的过早的微优化 -

  1. jQuery的包装原生事件相当严重正常化浏览器兼容性问题,所以总是会(略)慢

  2. DOM3风格addEventListener应优先于DOM0 .onxxx,但不是因为我知道的任何性能或记忆原因

+0

哪些浏览器与onclick,onkeypress等不兼容?使用jQuery事件处理程序还有其他好处吗? – 7ch5

+0

@ 7ch5所有的浏览器都支持'.onXXX',但有些东西你可以用(native)'addEventListener'来完成,而你无法用'.onXXX'来完成。 – Alnitak

1

分析差异。如果你只做了一次,而你甚至无法区分这种差异,那么这并不重要。

如果你这样做了100万次,看看在速度和内存消耗方面的差异是什么和决定。

尽量避免过早优化。

0

如果由于其他原因页面已经包含jQuery,那么添加一个事件处理程序不会在内存消耗/性能方面产生任何显着差异。另一方面,如果页面因为其他原因不需要jQuery,那么没有jQuery的页面会更小/更快。