Michi: Ziel: HTML-Code in Dateien handlich und im Browser komprimiert

Hallo, ich bin auf der Suche nach einer Server-Extension bzw. einer kleinen Code-Ergänzung (das eigentliche Projekt ist in PHP geschrieben), die aber nicht zu viel Performanz kosten darf, womit der HTML-Code maximal komprimiert vom Server ausgeliefert wird.

Momentan verwende ich bereits sowohl mod_deflate als auch Hart-Komprimierung, d.h. der Code samt Resourcen wird von irgendwelchen Pack-Tools zwischendrin immer mal wieder einigermaßen komprimiert, sodass man die Resourcen grad noch manuell bearbeiten kann, und so dann auch in der jeweiligen Datei gespeichert, womit das Ganze halt nicht mehr so gut lesbar ist...

Ziel wäre jetzt: Lokal in der Entwicklungsumgebung mit gut leserlichen, nicht zu gequetschten Resourcen arbeiten zu können, jedoch maximal komprimierte Quelltexte im Browser geliefert zu bekommen. Es ist also kein Problem, sondern eher gewollt, dass der Quelltext im Browser vom Menschen nicht mehr gut zu lesen ist, denn um zu sehen, ob der Code valide ist etc., haben wir ja vor allem mal entsprechende Validatoren. Die Quelltexte in der Entwicklungsumgebung sollten in Zukunft jedoch möglichst nicht mehr gepackt vorliegen.

mod_deflate wird wie gesagt eingesetzt, aber da gehts ja nur um die Komprimierung bei der Übertragung und auf Client-Seite schaut alles wieder aus wie auf dem Server. Gibt es eine technische Ergänzung wie eine Server-Extension oder Ähnliches, dass der Code dann auch im Browser-Quelltext komprimiert wird, ohne dass er auf dem Server physisch so gespeichert werden muss?

Gruß Michi

  1. Mahlzeit,

    wenn du eh PHP benutzt, wo ist das Problem, vor der Ausgabe das serverseitig umzusetzen?
    Zeilenumbrüche und Leerzeichen entfernen sollten kein grosses Problem sein.

    --
    42
  2. Hallo,

    beschreibe einmal, welches Problem du lösen willst. Lädt deine Seite zu langsam?

    HTML kann nicht »komprimiert« werden, es kann nur überflüssiger Whitespace entfernt werden.

    Wenn danach ohnehin eine GZip-Komprimierung vorgenommen wird, dann ist die Ersparnis dieser HTML-Minifizierung meist vernachlässigbar (ein paar Prozent Ersparnis stehen einem großen Rechenaufwand entgegen). Selbst eine naive Komprimierung kann tausend Zeilenumbrüche und Leerzeichen zu ein paar Bytes komprimieren. Für die allermeisten Websites ist das der Aufwand nicht wert. Für hochfrequentierte Sites wie Google ergibt es Sinn, weil ein Byte im HTML täglich milliardenfach übertragen wird und somit Kleinvieh großen Mist macht.

    HTML-Parsing, um Whitespace zu entfernen, ist nicht trivial. Dazu braucht man bestenfalls einen standardkonformen HTML5-Parser, damit das Ergebnis fehlerfrei ist. Der ist sehr langsam, selbst wenn er in C implementiert ist. Das ist auch nötig, denn HTML ist eine Sprache, in der Whitespace in vielen Elementen und Attributen Bedeutung hat und nicht einfach zusammengekürzt werden kann.

    Jedenfalls wäre »HTML minification« der Suchbegriff für dich.

    Grüße
    Mathias

    1. @@molily:

      nuqneH

      Für hochfrequentierte Sites wie Google ergibt es Sinn, weil ein Byte im HTML täglich milliardenfach übertragen wird und somit Kleinvieh großen Mist macht.

      Weshalb es in dem Spezialfall auch Sinn macht, optionale Start- und End-Tags sowie wenn möglich Anführungszeichen um Attributwerte wegzulassen. Im Allgemeinen macht das aber keinen Sinn.

      Qapla'

      --
      „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)