Wer kennt es nicht… man hat Protoype… Scriptaculous und noch einige andere Bibliotheken… sehr schnell hat man mal 200kb die ständig geladen werden. Das dies ein ganzer Haufen ist für so manch eine Leitung, ist jedem klar.
Kleines Beispiel:
Komplettes Prototype ohne Kompression: ca. 9 Sekunden (124kb)
Komplettes Prototype mit Kompression: ca. 3 Sekunden (32kb)
Das ist definitiv ein immenser Vorteil, die komprimierte Version wird nur genommen, sofern der Browser gzip-Dateien unterstützt, somit kann es auch hier nicht zu Problemen führen. Einzigster Nachteil: Browser ohne Support, haben nach wie vor lange Ladezeiten, was Schade ist.
Der .htaccess Code:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:Accept-Encoding} .*gzip.*
RewriteRule ^js/(.*)\.js$ /scripts/$1.js.gz [L]
RewriteRule ^css/(.*)\.css$ /css/$1.css.gz [L]
AddEncoding x-gzip text.gz
Wichtig ist das man stets 2 Versionen von allen Dateien machen. Einmal die normale .js / .css und dann einmal .js.gz / .css.gz. Via Script lässt sich das auch ganz einfach lösen. Wer sich keine große Arbeit machen will, diese zu komprimieren. Einfach diese PHP-Datei in den Ordner mit den JavaScripts legen. (Für CSS entsprechend anpassen).
<?php
$jsFiles = glob('*.js');
foreach($jsFiles as $jsFile){
$basename = basename($jsFile);
$gzname = $basename.'.gz';
file_put_contents($gzname, gzencode( file_get_contents($basename),9));
}
?>
Hoffe das hilft dem einen oder anderen, ein wenig Bandbreite zu sparen und den Usern ein wenig mehr aus den Ladezeiten herauszuholen.

07:55
Abro
[code]
$files = glob('{css/*.css,js/*.js}',GLOB_BRACE);
foreach($files as $file)
{
$gz = $file.'.gz';
file_put_contents($gz, gzencode(file_get_contents($file),9));
}
echo 'Files found: '.count($files);
[/code]
;o) netter artikel, danke dir.
13:25
RYErnest
Nice post u have here
Added to my RSS reader
13:15
Daniel
Schöbner Artikel
13:25
Christian Weber
Danke Dir!
20:10
7162
Vielen Dank für den Hinweis, hat mir geholfen im Gegensatz zu manch anderer Quelle.
Pingback: How To Automate Optimization and Deployment Of Static Content
Pingback: How To Automate Optimization and Deployment Of Static Content « Tech7.Net
Pingback: Wordpress Blog Services - How To Automate Optimization and Deployment Of Static Content
Pingback: How To Automate Optimization and Deployment Of Static Content- My Site!
22:30
Kim
Performance-Gewinn durch Kompression der ausgelieferten Komponenten und gleichzeitig wieder Verlust durch die sehr teure Funktion glob().
Das Beispiel ist zwar wertvoll, aber es könnte schöner sein.
Pingback: How To Automate Optimization and Deployment Of Static Content | Desinine
18:35
gurgelstock
Danke für das script, sehr hilfreich!
23:43
Frank-Andre Thies
Hi,
Danke für den super Hinweis, ich habe aber Probleme bei der Umsetzung. Denn bei mir kommen nun folgende Fehler in der Konsole:
Fehler: Stylesheet …/css/base.css wurde nicht geladen, weil sein MIME-Typ, “application/x-gzip”, nicht “text/css” ist.
Fehler: illegal character
Quelldatei: …/jquery.cycle.all.min.js
Zeile: 1
Quelltext:
‹
Weiss jemand, was ich ggf. noch in der .htaccess eintragen muss, damit die GZ-Files akzeptiert werden?
Danke im Voraus
11:33
Alex
Hallo
Hab das auch so eben ausprobiert, aber klappt bei mir nicht.
Das PHP skript zum umwandeln funktioniert einwandfrei, echt super.
aber dann habe ich htaccess code in die datei gemacht und in das rootverzeichnis geladen aber es ändert sich nichts, bzw. wo kann man sehen, dass die .gz datei geladen wird? im quelltext??
danke
12:10
Sascha
Hallo,
Vielen Dank für diesen Artikel. Ich versuche schon seit geraumer Zeit meine js Dateien mit GZIP auszuliefern.
Mit deinem Script konnte ich diese mal serversetig erstellen.
Nun aber bei der Auslieferung happerts…
Ich bekomme immernoch ein 600k grosses js file (ext-all.js).
Das komprimierte File scheint laut Firebug konsole nicht ausgetauscht/ausgeliefert zu werden. Kannst Du mir vielleicht eine Tipp geben an was das es liegt?
Ich habe Dir mal eine Testfile mit dem js platziert:
http://nobile-bergdietikon.ch/test.php
in der htaccess habe ich folgendes platziert:
RewriteEngine On
RewriteBase /htdocs/
RewriteCond %{HTTP:Accept-Encoding} .*gzip.*
RewriteRule ^js/(.*)\.js$ /js/$1.js.gz [L]
AddEncoding x-gzip text.gz
Jede Hilfe ist Herzlich Willkommen!
Gruss
Sascha