10

HTML 属性を特定の順序で整理すると、HTML ドキュメントの圧縮率が向上するという記事をどこかで読みました。(私はこれを Google または Yahoo のより高速なサイトに関する推奨事項から読んだと思います)。私の記憶が正しければ、最も一般的な属性 (idなど) を最初に配置し、残りをアルファベット順に配置することをお勧めしました。

私はこれに少し混乱しています。たとえば、すべてのタグのid直後に属性を配置すると、一意の値が含まれます。したがって、複製された文字列は次のように制限されます: ( と があったとします)。の値は一意である必要があるため、これは実際には圧縮に悪影響を及ぼしていると考えています。pid<p id="<p id="1"><p id="2"/>id

私が間違っている?

属性がランダムに並べられた静的な Web ページを通過する必要がある場合、最大の圧縮を達成するために属性を整理するにはどのようなロジックを使用すればよいですか?

注: GZIP 圧縮について話している (問題がある場合): http://www.gzip.org/algorithm.txt

4

1 に答える 1

13

あなたの目的は、繰り返されるコンテンツを奨励することです。そのため、<p class="foo" id="a">bar</p>...<p class="foo" id="b">bof</p>実際には よりも圧縮しやすい可能性が<p id="a" class="foo">bar</p>...<p id="b" class="foo">bof</p>あり、どちらも通常は よりも簡単に圧縮でき<p class="foo" id="a">bar</p>...<p id="b" class="foo">bof</p>ます。

しかし、実際には、その差はごくわずかです。自分の利益のために最も読みやすい方法でマークアップを記述し、mod_deflate にその仕事を任せる方がはるかに良いでしょう。この種のマイクロ最適化では、単一の TCP パケットでも保存するために長い道のりを歩まなければなりません。また、マイクロ レベルでコンプレッサーを再考すると、予期しない、場合によってはマイナスの結果が生じることがよくあります。

一部の要素では、可読性とは「共通」属性を最初に配置することを意味する場合もあります。たとえば<input type>、通常は最初にリストされている属性です。通常、独自の属性順序スタイルを作成し、それが一貫していれば、あちこちで数バイト節約できると思います。一貫した順序として生のアルファベット順は選択しません。必要なのは、Canonical XML が生成するものであるということだけです。

google.com のフロント ページでさえ、読みやすさ、基本的な検証、およびあらゆる種類の優れた実践を犠牲にしてバイト数を削減することに専念していることで有名ですが、わざわざ属性の一貫した順序を使用することはありません。

于 2010-10-17T00:50:18.037 に答える