高速化:jQuery と CSS のセレクタは書き方を変えること
『jQuery クックブック』レシピ 5.10 より高速なセレクタを作成する (P.109) には以下の記述があります。
<table id="log"> <tr><td>Client X:</td><td class="clientX"></td></tr> ... </table>
// クラス .clientX を取得する jQuery セレクタ $('.clientX') // 遅い $('td.clientX') // 速いかもしれない $('#log .clientX') // かなり速いかもしれない $('#log td.clientX') // ブラウザによっては速い可能性がある
jQuery のセレクタは、#id や tag.class 等の限定されたルールで条件を絞り込むほど高速になる傾向があるようです。
詳しい解説がこちらにあります。
また、jQuery の高速化についてのまとめがこちらにあります。
一方、『続・ハイパフォーマンスWebサイト』14.2 CSSセレクタを効率的にするためのポイント (P.201) には次のような記述があります。
よって、スタイルシートでは上記の jQuery セレクタと異なり、目的のクラス .clientX だけを記述したほうが無駄な照合をしなくて済みます。
.clientX { ... } # 効率的 td.clientX { ... } # 無駄 #log .clientX { ... } # 無駄 #log td.clientX { ... } # 無駄
これらの結果はクラス .clientX が数多く存在する DOM システムに対して成り立つものです。
実際、スタイルシートの高速化は、複雑なセレクタを使用して照合に時間がかかっても、平均 30 ミリ秒程度しかかからなかったという報告もあります。
ハイパフォーマンスWebサイト ―高速サイトを実現する14のルール
- 作者: Steve Souders,スティーブサウダーズ,武舎広幸,福地太郎,武舎るみ
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/04/11
- メディア: 大型本
- 購入: 32人 クリック: 676回
- この商品を含むブログ (125件) を見る
続・ハイパフォーマンスWebサイト ―ウェブ高速化のベストプラクティス
- 作者: Steve Souders,武舎広幸,福地太郎,武舎るみ
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/04/10
- メディア: 大型本
- 購入: 20人 クリック: 351回
- この商品を含むブログ (29件) を見る