Zeitgeist ZMS V3.0
 

Javascript Minify hilft Traffic zu verringern
09.02.2010

Heute geht nichts mehr ohne Javascript Libraries: jQuery, Shadowbox, etc. werden fast immer gebraucht. Das schlechte daran ist, dass jede Library mit ihren Plugins viele Javascript-Sourcen benötigt, die alle einzeln aufgerufen werden. Zudem sind die Sourcen oft auch unkomprimiert, was die Dateien gross werden lässt. Mit Javascript Minify können diese Probleme elegant umschifft werden.
Javascript Minify - alles auf einmal und kleiner
Javascript Minify - alles auf einmal und kleiner

Im ZMS wurde die Javascript Minfiy Funktionalität mit Hilfe der Library von Tino Zijdel realisiert. Die Klasse UTIL_JAVASCRIPT formt einen Wrapper um die Library und liefert den Caching-Mechanismus. Am Schluss ist die Anwendung denkbar einfach: Im Head des Pagestyles werden mit der statischen Funktion UTIL_JAVASCRIPT::Minify die benötigten Javascripts zusammengefasst und komprimiert. Dies kann etwa so aussehen:

Damit werden die angegeben Javascripts zusammengefasst, komprimiert und in der Datei frontend_min.js ausgegeben. Dieses neue Javascript muss nun natürlich noch eingebunden werden:

Das Caching funktioniert so, dass beim erstellen der Datei geschaut wird, ob die einzelnen Javascripts ein neuers Dateidatum (Zeit der letzen Modifikation) haben als das zu generierende Javascript. Falls dies so ist, wird das zusammengefasst Javascript neu generiert. Natürlich wird auch neu generiert, wenn das zusammengefasste Javascript noch gar nicht exisiert.

Als Zusatz kann der zweite Parameter (Ausgabedatei) auch weggelassen werden. In diesem Fall wird das zusammengesetzte Javscript als String zurückgegeben und kann dann ausgegeben werden. Dies sollte aber in produktiven System nicht gemacht werden, da bei jedem Aufruf die Javascripts zusammengesetzt und komprimiert werden, was sehr langsam ist. Für Testzwecke kann es aber sicher eingesetzt werden.