数ヶ月前、this articleは、実際にはウェブサイトの開発からクラスをすべて一緒に避けることができると指摘しました。データ属性のCSSセレクタはクラスセレクタより高速ですか?
私の質問は、データセレクタがクラスセレクタと比較してどのくらい効率的であるかです。
単純な例は、の要素に対してdata-component='something'
の要素のクエリを比較することです。
セレクタは、スプリットするクラス文字列と比較して全体として値をチェックします。これを念頭に置くと、データ属性はより高速になるはずです。
したがって、CSSの場合、クラスセレクタやデータセレクタを使用する方がよいでしょうか?そして、javascriptの観点から、jQuery("[data-component='something']")
はjQuery(".something")
より効率的ですか?
私はどのように知らない試すことができますウェブプログラミングはその記事の倫理に関連していますが、私はそれが私がやることとは何の関係もないと確信しています。また、もしあなたがその記事をよく読んでいれば、私は、その作者がクラスと同じように 'data-'属性に関心を持っていると思われます。彼らは結局同じ "犯罪"を表しています。 – Pointy
あなたの質問に関しては、いくつかの[jsperf](http://jsperf.com)テストがその質問に答えるのに役立つかもしれません。私は、 'querySelectorAll()'などの現代的なブラウザではどちらのアプローチでもほとんど問題がないと思う。 – Pointy
データの属性やクラスを追加する代わりにスタイリングするほど、私はもっと好きです。例えば、ブロック要素(検索ボックスのような)が隠されているという事実は、data-state = 'hidden'によって示されます。これは、「コンポーネントウィジェット - ヘッダータッチ可能な隠し丸みを帯びたトップ」よりも、開発者が読める方が簡単です。 –