Personal tools
You are here: Home ブログ 井上 CSSパフォーマンスと昔話
« January 2009 »
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
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.