gpt4 book ai didi

jQuery 选择器 - 按速度顺序

转载 作者:行者123 更新时间:2023-12-03 22:52:43 30 4
gpt4 key购买 nike

我一年前找到了一篇关于此问题的文章,但现在找不到了,而且我找到的所有其他文章都不完整。

我想要的是建立一个在 jQuery 中选择元素的最快方法的明确列表

据我了解,如果我有以下内容

<body>
<div id="container">
<ul class="count">
<li>One</li>
<li>Two</li>
<li class="selected">Three</li>
</ul>
</div>
</body>

按速度顺序(从最快到最慢)按 ID 选择:

$('#container')

按元素选择:

$('div')

在元素的帮助下按类别选择

$('ul.count')

在元素的帮助下按元素 ID 的一部分进行选择(在本例中以结尾)

$("div[id$='tainer']")

按类别选择

$('.count')

按元素 ID 的一部分进行选择(在本例中以结尾)

$("[id$='tainer']")

这是否按正确的速度顺序排列?我错过了什么吗?

谢谢

最佳答案

选择器的性能取决于几个因素。浏览器是主要因素,有sizzle/querySelectorAll/jsengine,以及使用它们的jquery版本。基本上,jquery 提高了每个版本的性能,并且很好地根据浏览器选择最佳可用方法。

浏览器、js 引擎或 jquery 本身的任何类型的更新都可以引发新的“最佳执行者”方法。此外,根据数据的大小和深度,一种方法可能会突然变得比另一种方法更快。更不用说查询本身了。例如 $('#id .class') 可能不会使用与 $('#id').find('.class') 相同的“引擎”。

总而言之,这不是问题,jquery 已经优化得相当好了。当我偶然发现性能问题时,它绝对不是由于选择器(而是由于 .append()、大型非委托(delegate)事件或插件,以及总体而言:我的普通旧式糟糕编码)。

如果你真的非常需要 dom 上的性能,你必须将性能与“document.getElementbyId”(当你有一个 id 一起使用时)和 native “document.querySelectorAll”进行比较,这似乎是本月最快的方法。

关于jQuery 选择器 - 按速度顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7993139/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com