Javascript 使用jquery快还是不使用jquery快?

Javascript 使用jquery快还是不使用jquery快?,javascript,jquery,performance,Javascript,Jquery,Performance,在我编写的桌面html5应用程序中,我总是使用jquery,尽管我正在编写移动html5应用程序,我想知道我是否应该使用jquery 首先,我对选择器很好奇。我在JSFIDLE上做了一些实验,并测试了$('#item')和document.getElementById('item')之间的速度差异。从统计数据来看,我得出结论,美元(“#item”)的速度比document.getElementById慢。出于这个原因,我想完全改用不用jQuery编写代码,不过我在这里读到了这个问题: 在绑定方

在我编写的桌面html5应用程序中,我总是使用jquery,尽管我正在编写移动html5应用程序,我想知道我是否应该使用jquery

首先,我对选择器很好奇。我在JSFIDLE上做了一些实验,并测试了$('#item')和document.getElementById('item')之间的速度差异。从统计数据来看,我得出结论,美元(“#item”)的速度比document.getElementById慢。出于这个原因,我想完全改用不用jQuery编写代码,不过我在这里读到了这个问题:

在绑定方面,使用jQuery的.on()方法非常有效。jQuery的.on()方法比addEventListener()快吗?如果我不断地添加和删除这个div的倍数呢:

<div class="item"></div>


去大教堂。在普通javascript中,每次我使用类项添加新div时,我都必须为该新div重新绑定,但使用.on()它会自动为我绑定。这样会更有效率吗

已经有很多测试显示了使用jQuery和本机以及其他库之间的差异。基本概念是包装器几乎总是比本机函数慢,因为它们会产生额外的开销。以下是一些例子:


已经有很多测试显示了使用jQuery和native以及其他库之间的差异。基本概念是包装器几乎总是比本机函数慢,因为它们会产生额外的开销。以下是一些例子:

jQuery的.on()方法比addEventListener()快吗

是根据定义的,它使用
addEventListener
。一方面,由于参数检查和管理的开销,这些函数比直接调用
addEventListener
要慢。另一方面,
.event.add()
确保尽可能避免调用
addEventListener

在您的特定示例中(添加一个项、绑定一个事件处理程序、删除该项),我认为jQuery的执行速度较慢,因为
.event.add()
的成本大于它的好处。然而,衡量往往比假设更好

还要记住,jQuery的目标是非常可移植。例如,它包含。您可能不值得花开发时间亲自测试和规避这些浏览器错误

jQuery的.on()方法比addEventListener()快吗

是根据定义的,它使用
addEventListener
。一方面,由于参数检查和管理的开销,这些函数比直接调用
addEventListener
要慢。另一方面,
.event.add()
确保尽可能避免调用
addEventListener

在您的特定示例中(添加一个项、绑定一个事件处理程序、删除该项),我认为jQuery的执行速度较慢,因为
.event.add()
的成本大于它的好处。然而,衡量往往比假设更好


还要记住,jQuery的目标是非常可移植。例如,它包含。测试和绕过这些浏览器错误可能不值得你的开发时间。

为什么性能是你考虑的唯一标准?这是一个很好的过早优化的例子。移动设备上的jQuery根本不一定是个问题;事实上,一个完整的面向移动的框架是建立在它之上的。运行测试并自己发现。jsperf是一个很好的资源。当然,任何库,无论是JQuery还是其他库,都比用本机代码编写的库慢得多。您始终可以将事件处理程序添加到文档中,并检查目标是否等于动态元素。本质上,当你键入<代码> $(文档)时,你也会做同样的事情。在(点击)、“EL”、“MyFunc”< /COD>为什么性能是你唯一考虑的标准?这是一个很好的过早优化的例子。移动设备上的jQuery根本不一定是个问题;事实上,一个完整的面向移动的框架是建立在它之上的。运行测试并自己发现。jsperf是一个很好的资源。当然,任何库,无论是JQuery还是其他库,都比用本机代码编写的库慢得多。您始终可以将事件处理程序添加到文档中,并检查目标是否等于动态元素。在('click','el',myFunc)