【发布时间】:2013-01-04 07:23:49
【问题描述】:
我见过很多例子(包括最喜欢的 Twitter 的引导程序),其中各种 API 使用 $("[data-something]") 而不是按类选择 $(".something")
尽管如此,我还是试图找到有关这两个不同选择器之间性能的信息。我很惊讶许多性能测试确实发现这些选择器在大多数现代浏览器上都同样快,所以我决定做my own test
我现在真的很困惑,我不知道是我的测试做错了(不知何故?)还是我之前检查过的其他测试?
如果我在测试时做错了什么或者这些测试是否正确并且 data-attribute 选择器实际上比常规 class 慢得多,谁能提供更多信息选择器?
谢谢
【问题讨论】:
-
我认为是因为
data-attribute使用querySelectorAll或在需要时发出嘶嘶声,而普通班级使用更快的getElementsByClassName。检查jsperf.com/class-vs-data-1 -
好吧,我明白这一点,但正如我之前阅读的那样,我惊讶地发现一些测试显示两个选择器的性能相同,这就是我自己进行测试的原因,现在我想确认这些测试是否正确。或者也许有人可以指出我做错了什么:)
-
我会说是的,这些结果对我来说似乎是正确的。但这很简单,除非你有一千个元素......
-
我相信对于千或任何其他大数字,数据属性选择器的元素结果应该更差,因为搜索正确元素的 DOM 会更大
标签: javascript jquery jquery-selectors performance-testing