2010-10-17 5 views
10

Ich habe irgendwo gelesen, dass das Organisieren von HTML-Attributen in einer bestimmten Reihenfolge die Komprimierungsrate für das HTML-Dokument verbessern kann. (Ich denke, ich lese das von Google oder Yahoo Empfehlung für schnellere Seiten). Wenn ich mich richtig erinnere, war die Empfehlung, zuerst die gebräuchlichsten Attribute zu setzen (z. B. id usw.) und dann den Rest in alphabetischer Reihenfolge zu setzen.Optimierte Reihenfolge der HTML-Attribute für die Komprimierung

Ich bin ein bisschen davon verwirrt. Wenn zum Beispiel die Attribute id direkt nach jeder -Kennung eingefügt werden, enthält die id eindeutige Werte. Somit wäre die doppelte Zeichenfolge auf diese beschränkt: <p id=" (sagen wir, es gäbe <p id="1"> und <p id="2"/>). Da der Wert id eindeutig sein muss, sehe ich, dass dies tatsächlich eine negative Auswirkung auf die Komprimierung hat.

Bin ich falsch?

Wenn ich eine statische Webseite mit zufällig angeordneten Attributen durchlaufen müsste, welche Logik sollte ich verwenden, um Attribute zu organisieren, um maximale Komprimierung zu erreichen?

HINWEIS: Ich spreche GZIP-Kompression (wenn diese Fragen): http://www.gzip.org/algorithm.txt

Antwort

13

würde Ihr Ziel sein, wiederholt Inhalte zu fördern. So <p class="foo" id="a">bar</p>...<p class="foo" id="b">bof</p> könnte in der Tat einfacher zu komprimieren als <p id="a" class="foo">bar</p>...<p id="b" class="foo">bof</p>, und beide würden in der Regel einfacher komprimieren als <p class="foo" id="a">bar</p>...<p id="b" class="foo">bof</p>.

Aber wirklich, der Unterschied wird winzig sein. Es wäre viel besser, wenn Sie Ihr Markup zu Ihrem eigenen Vorteil auf die lesbarste Art und Weise schreiben und mod_deflate mit seiner Arbeit weitermachen. Sie müssen einen langen Weg gehen, um sogar ein einzelnes TCP-Paket mit dieser Art von Mikro-Optimierung zu speichern, und das Nachschätzen des Kompressors auf einer Mikroebene kann oft unerwartete, möglicherweise negative Ergebnisse erzeugen.

Für einige Elemente kann Lesbarkeit auch bedeuten, dass die 'allgemeinen' Attribute zuerst gesetzt werden, zB ist normalerweise das erste aufgelistete Attribut; In der Regel werden Sie Ihren eigenen Attributzuordnungsstil ausarbeiten und wenn es konsistent ist, werden Sie hier und da ein paar Bytes sparen. Ich würde nicht rohe alphabetisch als die konsistente Reihenfolge wählen. Alles, was dafür notwendig ist, ist, dass Canonical XML dafür sorgen wird.

Selbst die Vorderseite von google.com, die für ihre Hingabe an das Abtrennen von Bytes auf Kosten von Lesbarkeit, grundlegender Validierung und jeder Art von guter Praxis berühmt ist, verwendet keine einheitliche Reihenfolge für Attribute.

Verwandte Themen