Kalle_B: HTML-Daten gezippt übertragen?

Hallöle,

habe eine HTML- Datei mit 1500 Zeilen. Dateigröße (abgespeichert): 626 kB

Beim Ansehen bemerkte ich die wahnsinnige Redundanz, in jeder Zeile dasselbe:
<tr><td class=xyz>Name</td><td class=wxy>Strasse ... </tr>

Da habe ich die Daten als Javascript- Array netto übertragen;
var d = new Array (
 new Array("Name","Strasse", ...

und auf dem Client wieder "aufgebläht". Dateigröße incl. kleines Script: 149 kB.

Da kommt die Idee auf, noch eins draufzusetzen und zu zippen.

Wie kann man mit PHP zippen und mit Javascript entzippen?

Hat jemand Tipps?

Lieben Gruss, Kalle

  1. Ok,

    da geht was, guck mal auf w3.org nach Content-Encoding.

    roro

  2. Moin!

    habe eine HTML- Datei mit 1500 Zeilen. Dateigröße (abgespeichert): 626 kB

    Beim Ansehen bemerkte ich die wahnsinnige Redundanz, in jeder Zeile dasselbe:
    <tr><td class=xyz>Name</td><td class=wxy>Strasse ... </tr>

    Das schreit ja förmlich nach Komprimierung.

    Da habe ich die Daten als Javascript- Array netto übertragen;
    var d = new Array (
    new Array("Name","Strasse", ...

    Was machen den Browser ohne (aktiviertes) Javascript?

    und auf dem Client wieder "aufgebläht". Dateigröße incl. kleines Script: 149 kB.

    Das ist trotzdem schon einmal ein Anfang.

    Da kommt die Idee auf, noch eins draufzusetzen und zu zippen.

    Das kannst du doch schon vorher.

    Wie kann man mit PHP zippen und mit Javascript entzippen?

    Gehts nicht noch umständlicher? Lass doch deinen Server gzippen und deinen Browser entgzippen.

    Viele Grüße,
    Robert

    1. Moin Robert,

      Was machen den Browser ohne (aktiviertes) Javascript?

      Na was wohl - Pause.

      Es geht hier um eine geschlossene Benutzergruppe, also kein Problem. Ich werde doch nicht öffentlich 1500 Zeilen ausgeben. Wer soll das lesen?

      Gehts nicht noch umständlicher? Lass doch deinen Server gzippen und deinen Browser entgzippen.

      Ja, diese Idee ist Klasse. Und wie bewege ich die beiden dazu?

      Viele Grüße,

  3. Hallo Kalle_B.

    Da kommt die Idee auf, noch eins draufzusetzen und zu zippen.

    Wie kann man mit PHP zippen

    Hiermit:

    [link:http://de.php.net/manual/de/function.ob-start.php@title=ob_start]('ob_gzhandler');  
      
    // Dein Code  
      
    [link:http://de.php.net/manual/de/function.ob-end-flush.php@title=ob_end_flush]();
    

    und mit Javascript entzippen?

    Das ist weder möglich noch erforderlich. Ein Client, welcher gzip-komprimierte Daten zu verstehen meint, bekommt sie auch komprimiert ausgeliefert.

    Einen schönen Mittwoch noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
  4. habe eine HTML- Datei mit 1500 Zeilen. Dateigröße (abgespeichert): 626 kB

    Wie kann man mit PHP zippen und mit Javascript entzippen?

    Wie Du an diesem Forum merkst (oder auch nicht, dass ist das Schöne daran), hat Dein Browser bereits eine eingebaute gzip/deflate-Funktionalität und kann per HTTP gelieferte und entsprechend mit Content-Type: gzip gekennzeichnete Daten vollautomatisch auspacken.

    Nutzt Du einen halbwegs aktuellen und entsprechend ausgerüsteten Apache-Webserver, kannst Du die vollautomatische Kompression durch mod_deflate auch selbst einschalten und musst Dich um nichts weiter kümmern. Der Server erkennt selbsttätig, ob er komprimierte Daten schicken kann oder nicht.

    Ist mod_deflate nicht eingebaut, kannst Du stattdessen zlib.output_compression in PHP einschalten und die Datei als PHP-Skript schicken. Der Effekt ist der gleiche.

    Falls es sich um eine statische Datei handelt, sollte es last but not least sollte möglich sein, die Datei mittels gzip von Hand zu packen und als datei.html.gz auf dem Server zu legen. Ist AddEncoding im Webserver richtig eingerichtet, sollte auch diese Datei transparent vom Browser ausgepackt werden.

  5. Hallo,

    das mit dem JavaScript ist bei Komprimierung als "gz" nicht mehr
    nötig bzw. besonders effektiv.
    Und Besucher ohne JavaScript haben auch etwas davon, wenn du es
    anders lösen kannst.

    Also entweder per PHP als gz ausgeben usw., oder als statische Datei
    anlegen und per multiviews den Browsern anbieten.

    Bei der zweiten Variante kannst du z.B. mit einem Programm wie
    7-zip eine *.gz erzeugen.

    Die Ausgangsdatei kann als "xyz.html.html" gespeichert werden, das
    Archiv als "xyz.html.gz".

    Über die .htaccess kannst du dann erreichen, dass der Browser das
    passende bekommt:

    Options +Multiviews  
    AddEncoding gzip .gz
    

    Grüsse
    Cyx23

  6. Hat jemand Tipps?

    Unter http://www.schroepl.net/projekte/mod_gzip/ findest du ein hervorragendes Tutorial zu diesem Thema.

    Siechfred

    --
    Ich bin strenggenommen auch nur interessierter Laie. (molily)