我想知道既有本地js和jquery事件處理程序,我應該選擇哪一個內存消費/性能角度?說我有這個HTML代碼,一個簡單的按鈕。jquery或js事件處理程序?
<button id="herp">derp</button>
會
herp.onclick = function()
{
alert('hey');
}
優於
$("#herp").click(function()
{
alert('hey');
});
?
我想知道既有本地js和jquery事件處理程序,我應該選擇哪一個內存消費/性能角度?說我有這個HTML代碼,一個簡單的按鈕。jquery或js事件處理程序?
<button id="herp">derp</button>
會
herp.onclick = function()
{
alert('hey');
}
優於
$("#herp").click(function()
{
alert('hey');
});
?
儘管這是邪惡的過早的微優化 -
jQuery的包裝原生事件相當嚴重正常化瀏覽器兼容性問題,所以總是會(略)慢
DOM3風格addEventListener
應優先於DOM0 .onxxx
,但不是因爲我知道的任何性能或記憶原因
分析差異。如果你只做了一次,而你甚至無法區分這種差異,那麼這並不重要。
如果你這樣做了100萬次,看看在速度和內存消耗方面的差異是什麼和決定。
儘量避免過早優化。
如果由於其他原因頁面已經包含jQuery,那麼添加一個事件處理程序不會在內存消耗/性能方面產生任何顯着差異。另一方面,如果頁面因爲其他原因不需要jQuery,那麼沒有jQuery的頁面會更小/更快。
哪些瀏覽器與onclick,onkeypress等不兼容?使用jQuery事件處理程序還有其他好處嗎? – 7ch5
@ 7ch5所有的瀏覽器都支持'.onXXX',但有些東西你可以用(native)'addEventListener'來完成,而你無法用'.onXXX'來完成。 – Alnitak