页面中的ID数量是否会影响选择器的效率?

时间:2016-02-26 15:53:17

标签: jquery html performance

在一个大的html页面中,id选择元素的速度是否取决于定义id的元素总数?

考虑以下场景:我们有一个包含数万个dom元素的大型html页面,我们有10000多个元素看起来像这样:

<div id="tooltip555">
     <label>Tooltip</label>
     <div>
          <i class="icon"></i>
          <span>Tooltip body</span>
          ...
     </div>
</div>

我知道通过ID(Performance of jQuery selector)直接选择元素会更快,因此从技术上讲,不要使用链式选择器选择tooltip555内的组件(例如'#tooltip555&gt; div&gt; ; span')如果我为我计划使用的每个子节点生成一个id并使用#tooltip555_div_span选择它会更快,但是会产生3倍于定义ID的dom元素吗?

1 个答案:

答案 0 :(得分:1)

如果你避免使用选择器会更快,因为它需要解析DOM而不是大多数浏览器预先存储在地图中的id。例如,您可以通过chrome中的id [&#34; elementId&#34;]访问您的元素。除非你使用&#34;:首先&#34;否则不要忘记。即使在找到第一个(也是唯一的)元素后,jquery仍会继续查看dom。

我会使用:$(document.getElementById(&#34; elementId&#34;))以获得最佳性能。

但是我再次高度怀疑你的性能问题来自于此,99%的时间是过度的dom操作或内存泄漏导致问题。