CSS und JS files komprimieren - gut und schlecht

Moderator: Sisko1990

Forum rules
Forumregeln
Locked
RedEye
Joomla! Ace
Joomla! Ace
Posts: 1460
Joined: Sat Jan 21, 2006 8:42 pm

CSS und JS files komprimieren - gut und schlecht

Post by RedEye » Wed Apr 21, 2010 1:53 pm

Ich habe mir einfach mal gedacht ich schreib mal ein paar kurze Zeilen zum Thema, nachdem ich heute morgen mit einem Kunden eine kleine Diskussion zu dieser Sache hatte.

Mittlerweile ist es ja sehr in Mode css und js files zu komprimieren, sofern der Besucher diese darstellen kann dann ist es auch eine super Sache ohne Frage.
Die Frage ist ja auch nicht ob wirs machen wollen, sondern wie...

Für mich gibt es nur eine wahre Methode, welche ich sowohl bei mir als auch bei Kunden verwende, und die heißt mod_deflate, sprich wir nutzen .htaccess
Der Grund ist simpel, Apache Server nutzt fast jeder und ein guter Hoster hat definitiv mod_deflate installt, also lassen wir den lieben Indianer des machen.

Nun solls aber auch Hoster geben die Ihren Kunden das nutzen von .htaccess files nicht erlauben, oder nur gewisse Dinge erlauben.
Die meisten Kunden dieser Hoster setzen dann auf eine PHP alternative: ob_start ('ob_gzhandler')
Diese Funktion nutzt die zlib Extension von PHP welche vorhanden sein muss, des weiteren sollte vorher aber erstma geschaut werden ob der liebe Hoster bei dem man ist zlib.output_compression nicht per default aktiviert hat, wenn dies der Fall sein sollte kann man sich nämlich ob_start('gz_handler') sparen weils eh nicht beachtet werden wird dann...

Wir gehen nun mal davon aus des unser Hoster es nicht aktiviert hat und nutzen ob_start('gz_handler')
in so gut wie allen Fällen ändern dann die User ihre yxz.css in eine xyz.css.php datei und fügen Ihr am Anfang Code ein der in etwa so aussieht

Code: Select all

ob_start ("ob_gzhandler");
header("Content-type: text/css; charset: UTF-8");
header("Cache-Control: must-revalidate");
$expires_time = 1440;
$offset = 60 * $expires_time ;
$ExpStr = "Expires: " .
gmdate("D, d M Y H:i:s",
time() + $offset) . " GMT";
header($ExpStr);
Ja der Output wird komprimiert wenn der Client es unterstützt, aber
NEIN dies is keine gute Methode...

Statische files wie unsere css und js files es sind on the fly mit PHP zu komprimieren is absolut nicht effektiv!
Das mag euch bei Seiten mit 500 Besuchern am Tag schneller vorkommen als wenn die files nicht komprimiert sind, bei ner Seite mit 5-10 Tausend Besuchern pro Tag sieht dies aber schon wesentlich anders aus :p
Der Grund ist simpel, der Output wird bei Aufruf berechnet und des immer und immer wieder.

Wenn Ihr also gezwungen seid PHP hier für zu verwenden dann solltet Ihr eine file erstellen welche direkt den komprimierten Output enthält und diesen nicht on the fly generieren lassen!
Code beispiele spare ich mir hier nu bewusst mal, da dies lediglich eine kleine Info seien sollte, Beispiele findet Ihr zu genüge im Netz dazu.

Hoffe die Info ist für paar Leuts hier hilfreich gewesen, happy coding :pop

Locked

Return to “Sonstiges (Offtopic)”