2012-06-29 202 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的頁面會更小/更快。