Personal tools
You are here: Home ブログ 井上 CSSパフォーマンスと昔話
« December 2010 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Recent entries
Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23
Herokuの発音 inoue 2010-12-20
雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18
IPA未踏のニュース inoue 2010-12-15
労基法とチキンゲーム inoue 2010-12-06
フロントエンドエンジニア inoue 2010-12-03
ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25
技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24
雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22
RESTの当惑 inoue 2010-11-22
「プログラマのためのUXチートシート」を作りました inoue 2010-11-19
「ビューティフルコード」を読みました inoue 2010-11-16
Categories
カテゴリなし
 
Document Actions

CSSパフォーマンスと昔話

メールを整理していたら、約2年半前に自分が書いたメールを見つけました。

Subject: [airone-dev:07728] CSSパフォーマンス(v2後の研究課題?)
Date: Fri, 08 Aug 2003 23:26:25 +0900 (JST)
From: INOUE Seiichiro <inoue@ariel-networks.com>

参考
http://jt.mozilla.gr.jp/xpfe/goodcss.html

理屈では分かっていましたが、パフォーマンス的には、IDやクラスをつけまくるのが良いと読めます。

しかし、理論上は良いとは思えません。
結局、IDをつけることは新タグを作るようなもので、IDをつけまくると、HTMLと違う別のスキーマ
を持つようになってしまいます。
クラスをつけまくると、見栄えのために構造が影響を受けてしまいます。
美しさと効率が相反する、悩ましい部分です。

子孫セレクタ指定が(劇的に)遅いのは昔から分かっていたことですが、
IE5がCSS1サポートで、子セレクタが使えないので、やむなくAirOneでは使っています。

引用
> ダメ - treehead treerow treecell { }
> マシだが、まだダメ (次を参照) - treehead > treerow > treecell { }
> 完璧 - .treecell-header { }

パフォーマンス的には完璧かもしれませんが、プログラマ的感覚からすると、
「変数のスコープを大きくして直接参照すれば速い」、と言っているようにも見えて、
全面的に賛成とは言いにくいです。
とは言え、パフォーマンスは目前の問題ではあります...

「IDやクラス指定をした場合タグ名を付けるな」、というのは想定外でした。
ぼくの脳内HTMLレンダリングエンジンは、タグから先にマッチすると思っていたので、
table.movebtn tr .button
より
table.movebtn tr td.button
の方が、ムダなマッチングが少ないと思っていました。

IEがどうかは不明です。MozillaがIDやクラスから先にマッチさせるなら、同じかもしれません。

昔のAirOneはIE5をサポートしていたため、子セレクタの指定を使っていません(すべて子孫セレクタ)。今はIE5がサポート外なので、子セレクタにして少しパフォーマンスを稼げるかもしれません。

昔話

CSS1の最初の公式スペックは1996年12月(http://www.w3.org/TR/REC-CSS1-961217)です。

それと前後して、インターネットの世界にw3c原理主義者がいました。簡単かつ偏った説明ですが、w3c原理主義者はHTMLでレイアウトを記述する書き手を粛正しました。w3c原理主義者にも過激派と穏健派がいました。過激派は、無知な大衆を攻撃しました。DTDも読めずにHTMLを書く素人はWebサイトで文書を公開する資格がないので、HTMLやCSSを勉強してから出直すか、書くのをやめろ、と主張しました。穏健派は、罪はツールおよびツール作成者にあると主張しました。ツールが正しいHTMLを吐き出すべきだと主張しました。それを使う一般ユーザ(当時の言葉で言えば、ホームページを作る人たち)が難しい仕様を理解する必要は無いと主張しました。

すみけん氏も語っているように(http://www.asahi-net.or.jp/~jy3k-sm/)、時代は穏健派が勝利しました。

The URL to Trackback this entry is:
http://dev.ariel-networks.com/Members/inoue/css-perf/tbping

Re:CSSパフォーマンスと昔話

Posted by anaka at 2006-01-08 15:33
クラス名を付けるのは(気持ちとしては)見栄えの指定に限った行為ではないので、そんなに違和感はないかなぁ。
別のスキーマが入り込むからイヤというのは同意。
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.