我在我正在处理的应用程序中大量使用jquery ui和jqgrid。在我看到的大多数示例中,使用jquery选择器访问这些控件以查找元素
id: $("#elementid")
。
我的问题是,jquery是否提供足够好的性能来反复执行此操作,或者在首次访问元素时保存对元素的引用是更好的做法:
var elementName = $("#elementid");
并重新使用引用?
答案 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
,这对于大多数人来说肯定足够快应用。即使您对数以千计的查找进行了测试,您也不会对人类思维产生明显的差异。
我说这最终是编码风格的问题。