markusbauer.info

Das Weblog für schöne Menschen

Selbe Seite – Halbe Größe

Datum: 5. Februar 2009
Tags: ,

Heute in der Arbeit hatten wir eine lustige Diskussion, wie groß eine Startseite sein darf. Mit „groß“ ist damit die Datenmenge gemeint, die beim Laden an den Browser geschickt wird. Interessant ist das deshalb, weil nicht jeder mit einer Hochgeschwindigkeitsinternetverbindung gesegnet ist, und weil das Warten, dass sich eine Seite aufbaut, ein schönes Beispiel für Lebenszeitverschwendung ist.

Vorsichtige Berechnungen ergaben, dass wir mit den aktuell geplanten Änderungen mit einer Datenmenge von 600 kb rechnen müssten. Das Laden würde mit einer ISDN-Verbindung im Idealfall 75 Sekunden dauern, und das ist eine furchtbar lange, eigentlich inakzeptable Zeit. Die Referenzseite, von der sich unsere „Strategen“ haben inspirieren lassen, und die ich hier bewusst nicht verlinke, bringt es sogar auf knapp 2 Megabyte – oder sagen wir 256 ISDN-Sekunden.

Das war für mich der Anlass, meine eigene Startseite mal ein wenig zu optimieren. Das Ergebnis vorweg: 115 statt vorher 226 kb. Und das ohne erkennbare Unterschiede oder funktionale Einschränkungen.
Wie geht das?

Erstens: Das hübsche Bild von mir war bislang im PNG-Format abgespeichert, was einen transparenten Hintergrund ermöglicht, aber satte 77 kb gebraucht hat. Ich bin da noch nicht so fit, möglicherweise kriegt man das durch diverse Einstellungen kleiner, aber da ich in diesem Fall sowieso keine Transparenz brauche, ist es jetzt ein JPG – nur ein Zehntel so groß.

Die zweite Maßnahme war ein bisschen komplizierter. Die meisten Browser haben eine eingebaute Entpackerfunktion. Die wird jetzt genutzt, indem Javascripte und Stylesheets gepackt übertragen werden, wenn der Browser etwas damit anfangen kann.
Die meisten Webserver haben dafür die Möglichkeit, die Daten automatisch zu packen, was aber immer wieder passiert… und das muss nicht sein. Also hab ich auf meinem Server gepackte Versionen von allen Scripten und CSS-Dateien abgelegt und prüfe bei jeder Anfrage, ob lieber die gepackte oder die normale Version ausgeliefert werden sollte. Für Javascripte, die noch dazu in einem besonderen Ordner liegen, sieht das so aus:

RewriteCond %{HTTP:Accept-Encoding} .*gzip.*
RewriteRule ^scripts/(.*)\.js$ /bla/scripts/$1.gz.js [L]
RewriteRule ^scripts/(.*)$ /bla/scripts/$1 [L]

Dem Profi fällt auf, dass meine gepackten Dateien die Erweiterung .gz.js haben. Man würde es umgekehrt (.js.gz) erwarten. Da macht mir aber die vom Webhoster vorgegebene Serverkonfiguration einen Strich durch die Rechnung, die für .gz Dateien dem Browser verschweigt, dass es sich eigentlich um ein Script handelt… und das macht Probleme.
Also, Erweiterung umgedreht, etwas ungewöhnlich, aber es funktioniert – zumindest in allen Browsern, die ich zur Hand habe.

Ich finde, das Ergebnis kann sich sehen lassen. Auch wenn, oder gerade weil man eben keinen Unterschied sieht.


Keine Kommentare

No comments yet.


Sorry, the comment form is closed at this time.


« Vorheriger Eintrag Nächster Eintrag »