jQuery - 性能访问元素

时间:2011-11-24 18:38:38

标签: jquery jquery-ui jquery-selectors performance

我在我正在处理的应用程序中大量使用jquery ui和jqgrid。在我看到的大多数示例中,使用jquery选择器访问这些控件以查找元素  id: $("#elementid")

我的问题是,jquery是否提供足够好的性能来反复执行此操作,或者在首次访问元素时保存对元素的引用是更好的做法: var elementName = $("#elementid");

并重新使用引用?

3 个答案:

答案 0 :(得分:1)

使用JQuery for ID与Javascript中的getElementById()相同。

正如您可以使用直接引用阅读here比在DOM树中每次搜索获取对象更快。

  

IE8 getElementById:0.4844 ms   ,IE8 id数组查找:0.0062 ms

     

Chrome getElementById:0.0039毫秒   ,Chrome id数组查找:0.0006 ms

这些是10 000 get的结果。要查看基准测试的完整代码,请单击链接。

答案 1 :(得分:1)

实际上Jquery的最佳实践是缓存引用。每次潜入DOM都是昂贵的,并且正如我们所知(来自SO创始人之一)performance is a feature。您可以在jQuery Fundamentals

中查看各种jQuery最佳实践

答案 2 :(得分:0)

定义和重用变量可能会稍微快一些,可能会被视为“最佳做法”,但$('#id')会映射到本地Element.getElementById,这对于大多数人来说肯定足够快应用。即使您对数以千计的查找进行了测试,您也不会对人类思维产生明显的差异。

我说这最终是编码风格的问题。