我想知道既有本地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