HTML-Daten gezippt übertragen?
Kalle_B
- programmiertechnik
0 _roro0 Robert Bienert0 Kalle_B
0 Mathias Brodala1 Mabraham1 Cyx230 Siechfred
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
Ok,
da geht was, guck mal auf w3.org nach Content-Encoding.
roro
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
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,
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
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.
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
Hat jemand Tipps?
Unter http://www.schroepl.net/projekte/mod_gzip/ findest du ein hervorragendes Tutorial zu diesem Thema.
Siechfred