Ich hab ein ganz interessantes Problem. Vor der Ausgabe von html Seiten komprimier ich diese mit gzip. Das klappt eigentlich bei fast allen Browser ganz gut bis auf den IE. Jetzt habe ich herausgefunden, dass ältere IEs (4/5/5.5/teilweise 6.0) Seiten nicht darstellen, die komprimiert kleiner als 4 kb sind, d. h. die Seite bleibt hin und wieder einfach weiß.
Jetzt könnte man natürlich dem aus dem Weg gehen, indem man einfach die Komprimierung einstellt, bei Seiten, die kleiner als diese 4 kb sind und der User MSIE benutzt. Das möchte ich aber nicht, weil ich mir dann auch die Komprimierung gleich sparen kann, wenn bei 80 % der User die ganzen 30 kb verschickt werden müssen. Daher dachte ich, man könnte das bestehende gzip einfach mit Leerzeichen oder etwas ähnlichem Auffüllen, damit ich genau auf 4 kb komme.
Ich komprimiere die Daten folgendermaßen:
Wie mach ich das?
Jetzt könnte man natürlich dem aus dem Weg gehen, indem man einfach die Komprimierung einstellt, bei Seiten, die kleiner als diese 4 kb sind und der User MSIE benutzt. Das möchte ich aber nicht, weil ich mir dann auch die Komprimierung gleich sparen kann, wenn bei 80 % der User die ganzen 30 kb verschickt werden müssen. Daher dachte ich, man könnte das bestehende gzip einfach mit Leerzeichen oder etwas ähnlichem Auffüllen, damit ich genau auf 4 kb komme.
Ich komprimiere die Daten folgendermaßen:
PHP-Code:
/* Compress the output */
$this->size = strlen($this->contents);
$this->gzdata .= substr(gzcompress($this->contents, $this->level), 0, - 4);
$this->gzdata .= pack('V', crc32($this->contents));
$this->gzdata .= pack('V', $this->size);
$this->gzsize = strlen($this->gzdata);
Kommentar