【发布时间】:2012-11-04 16:03:24
【问题描述】:
我相信我们都见过site for vanilla-js(最快的 JavaScript 框架);D 我只是好奇,在为点击添加事件处理程序方面,纯 JavaScript 究竟比 jQuery 快多少。所以我前往 jsPerf 进行测试,我是 quite surprised by the results。
jQuery 比普通 JavaScript 的性能高出 2500%。
我的测试代码:
//jQuery
$('#test').click(function(){
console.log('hi');
});
//Plain JavaScript
document.getElementById('test').addEventListener('click', function(){
console.log('hi');
});
我只是不明白这是怎么发生的,因为看起来 jQuery 最终将不得不使用与普通 JavaScript 完全相同的函数。 谁能解释一下为什么会发生这种情况?
【问题讨论】:
-
我想知道您在这里看到的是否是在 jsperf 中一遍又一遍地运行相同代码的工件。 jQuery 可能只调用一次
addEventListener(),然后将所有其他.click()处理程序链接到该调用上,而普通 JS 每次都会调用addEventListener()- jsPerf 如何测量事物的人工制品 - 不是典型的真实测量世界使用情况。
标签: javascript jquery event-handling jquery-events