数据属性css选择器比类选择器更快吗?

Vla*_*ula 41 javascript css performance html5 css-selectors

几个月前,这篇文章指出,实际上可以通过网站开发来避免课程.

我的问题是,与类选择器相比,数据选择器的效率如何?

一个简单的例子是比较元素data-component='something'与元素的查询class='class1 class2 something anotherClass'.

[data-<attr>='<value>']选择将检查值作为一个整体对String类应该被拆分.考虑到这一点,数据属性应该更快.

那么,为了改进这个问题,在CSS的情况下,我们最好使用类选择器还是数据选择器?而从javascript的角度来看,会jQuery("[data-component='something']")比效率更高jQuery(".something")吗?

BLS*_*lly 25

我不会把它称为决定性的,但它确实会出现类选择器更快...我只是将它们放在一起进行快速测试.

http://jsperf.com/data-selector-performance

编辑:

基于弗拉德和我的jsperf测试...如果性能是一个问题(特别是IE)...类仍然是要走的路

  • http://jsperf.com/testing-data-atribute-selectors是的,看起来甚至querySelectorAll在数据属性上都比较慢.这太令人震惊了!我期待它们更快,因为没有字符串拆分来获得\"\"中的实际值. (2认同)
  • 哇....在IE9中测试...单一类选择器_blow away_数据选择器...它甚至比chrome更快地进行一次测试.. IE 6300 ops/sec vs Chrome的4800 ... (2认同)

Zac*_*Zac 9

在查看BLSully的答案和他提供的测试页后,这里是实际数据进行比较.

jQuery类选择器性能与每秒jQuery数据属性选择器性能操作:

  • Chrome 27.0.1453的速度提高了31%
  • Firefox 15.0.1快140%
  • Firefox 21.0的速度提高131%
  • IE 9.0的速度提高了1,267%
  • IE 10.0中快了1,356%