Entpacken komprimierter Html Dokumente mit Javascript

Das Entpacken von Online Inhalten mit Javascript kann sinnvoll sein, sei es um Bandbreite zu sparen oder wertvollen localstorage optimal zu nutzen.

Manche Dokumente werden bei der Html Konvertierung durch redundate Formatinformationen erheblich aufgeblasen. Das kostet nicht nur Bandbreite sondern bei Emailversand auch Speicherplatz im Empfängerpostfach. 

In dieser Situation habe ich Möglichkeiten getestet, Html direkt im Browser zu entpacken. Folgende Bibliotheken finden sich im Netz:
  1. LZ-string --- Javascript Kompression/ Dekompression, Stärken: einfach zu handhaben, kompatibel bis IE7, Url: http://pieroxy.net/blog/pages/lz-string/index.html
  2. LZMA-JS --- Javascript Kompression/ Dekompression, Stärken: sehr gute Kompression, URL: http://cdn.jwebsocket.org/lzma-js/1.3.7/demos/advanced_demo.html
In meinem Test ergaben sich folgende Werte beim Komprimieren einer 1 MB grossen Tabelle
LZMA - 15 KB
LZ-String - 80 KB

Bei dem komprimierten Ergebnis handelt es sich um Binaerformat, zur Speicherung im Html Dokument muss eine Konvertierung in ein Textformat erfolgen, z. Bsp. Hex oder Base64, dadurch ist ein Aufschlag von 50% faellig, da nur 6 von 8 Bits genutzt werden. Dazu kommt der Overhead für das Dekompresiionsskript (ca. 10 KB).

Obwohl Lzma mit Lempelziff Komprimierung bessere Ergebnisse zeigt, habe ich hier nur die Verwendung von LZ-String getestet, da LZMA keine Kompatibilität zu alten Browsern bietet. 

Vorteile komprimierter HTML Dokumente:
- Platzersparnis
- Bandbreite
- geringere Belastung des Empfaengerkontos
- bessere Performance bei langsamer Verbindung

Nachteile:
- weniger kompatibel (im Vergleich zu reinem HTML)
- nicht durchsuchbar (Volltextsuche oder SEO)
- möglicherweise erhöhte Gefahr der Abweisung durch Spam Filter 
- Javascript muss aktiviert sein
- Kompressionsergebnis abhaengig vom Content
- overhead durch Kompressions Algorithmus
- zusätzlicher Aufwand bei der Erstellung

Die meisten Vor- und Nachteile liegen auf der Hand. Auf zwei Punkte will ich genauer eingehen: Demo: 
Als Vorlage für eigene Versuche kann diese Seite verwendet werden
http://nikolausdulgeridis.de.tl/LZCompressTemplate.htm

Als letztes fehlt noch das Tool um einen Text in einen komprimierten Base64 String zu wandeln:
http://nikolausdulgeridis.de.tl/LZ_demo64.htm