我想要提高jquery选择器的性能。你有没有什么技巧或文章可以帮助我找到最佳性能的jquery选择器?例如,如何选择一个div的id等。我能在网上提供html并比较不同的选择器来选择所需的元素。
我想要提高jquery选择器的性能。你有没有什么技巧或文章可以帮助我找到最佳性能的jquery选择器?例如,如何选择一个div的id等。我能在网上提供html并比较不同的选择器来选择所需的元素。
你可以在这里比较选择器的性能:http://jsperf.com/
只需设置您的HTML,包含jQuery,然后将每个要比较的选择器放置为一个测试用例。
许多这里的规则仍然适用,但是自jQuery 1.4.3+以后,Sizzle(jQuery的选择器引擎)会在支持它的浏览器中使用querySelectorAll()
。
这篇文章详细介绍了jQuery选择器及其性能。它主要是关于正确使用jQuery。由于很多jQuery使用都围绕着选择器,所以本文花费了一些时间来介绍它们。
基本上有几点需要记住:
getElementById
,getElementsByTagName
)的选择器getElementById
的选择器,那么它将执行得更快。 - Vivin Paliath这些文章没有涉及的一点是您的起点。如果您从整个DOM树开始,那么这些文章实际上是有用的。
然而,如果您有一个元素作为起点,那么它取决于您的搜索内容。我在使用MVC模板的动态javascript中,通常会获取采取行动的元素,然后搜索父对象。这样可以消除在生成随机名称容器时需要唯一命名的需求——从动态开发的角度来看,这使事情变得更加轻松。
虽然寻找接近父节点可能不像查找ID那么快,但与生成和跟踪多个唯一ID的时间和/或性能相比,性能应该是可以忽略不计的。
就像开发中的所有事情一样,“它取决于”将在此处占主导地位。
Article: http://www.sitepoint.com/jquery-vs-raw-javascript-1-dom-forms/
querySelectorAll()
有一段时间了。它始终用于document
上下文(即nodeType == 9
)。1.4.3 版本还将其用于元素节点(即nodeType == 1
)。 - Crescent Fresh