在一个大的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元素吗?
答案 0 :(得分:1)
如果你避免使用选择器会更快,因为它需要解析DOM而不是大多数浏览器预先存储在地图中的id。例如,您可以通过chrome中的id [&#34; elementId&#34;]访问您的元素。除非你使用&#34;:首先&#34;否则不要忘记。即使在找到第一个(也是唯一的)元素后,jquery仍会继续查看dom。
我会使用:$(document.getElementById(&#34; elementId&#34;))以获得最佳性能。
但是我再次高度怀疑你的性能问题来自于此,99%的时间是过度的dom操作或内存泄漏导致问题。