Für grössere Projekte nutzt man fast immer eines der gängigen Javascript Frameworks wie Prototype und Scripttaculous, jQuery oder Mootools. Diese bringen mit einigen 10 KB schon etwas Traffic auf die Leitung.
Schreibt man noch seine eignen Funktionen zum Handling der gesamte Seite, kann es schon mal passieren, das man weit über 200 KB an reinem Javascript überträgt. Das verursacht die gefürchteten Ruckler beim laden von javascriptlastigen Webseiten. Klickt der User auf ein Element, bevor das Javascript komplett geladen wurde kommt es zu unvorhergesehenen Ereignissen, da die Event-Handler noch nicht verdrahtet sind.
Um dem zumindest etwas vorzubeugen, kann man die Javascript-Dateien komprimieren. Das hat auch den angenehmen Nebeneffekt, dass das Rippen des Codes erschwert wird.
Javascript-Packer gibt es diverse. Bei eingehenden Test mit einigen meiner Bibliotheken bin ich beim YUI Compressor von Yahoo hängen geblieben. Dieser hat zwar nicht die allerbeste Packrate, auch unterstützt er kein Obfuscating, dafür hat er aber die sehr sinnvolle Option Semikolons im Code zu belassen und konnte als einziger alle meine Dateien so packen, dass sie noch problemlos weiter funktionierten.
Der Packer ist in Java geschrieben und läuft auf der Kommandozeile. Ein Aufruf wie der folgende komprimiert die Date “original.js” und speicher sie als “gepackt.js”. Als kleines Zusatzschmankerl komprimiert YUI Compressor auch noch Stylesheet Dateien.
java -jar yuicompressor-x.y.z.jar orginal.js -o gepackt.js
Zum YUI Compressor geht es hier
Alle die unter Windows einfach JavaScript- und CSS-Dateien komprimieren möchten, sollten vielleicht mal einen Blick auf *HasyCompressPortable* werfen:
http://code.google.com/p/hasycompress/
Wie es scheint ist HasyCompressPortale nichts anderes als eine GUI für den YUI.
Für den schnellen Compress :) allerdings durchaus nützlich.
Kurze Frage:
Hab bisher Packer und dort gibts probleme mit Underscores in Class-Names/IDs/Vars.
Da ich Packer bereits in mein Framework implementiert habe und eine Umstellung etwas zeitraubend wäre, wollt ich gern wissen, ob du ähnliche Probleme bei anderen Compress-Methoden (YUI etc) feststellen konntest.
lG
YUI hat bei mir im Gegensatz zu allen anderen Packern nie Probleme verursacht.