Seite 1 von 1

Javascript Code mittels PHP Script komprimieren

Verfasst: 05.11.2009, 11:08
von Faruq
hallo,
ich suche ein php-script, mit dem ich javaScript dateien komprimieren kann.

das script sollte variablen-namen kürzen, zeilenumbrüche, kommentare und unnötige leerzeichen entfernen.

kennt da jemand was brauchbares?

ps: hab kein root-server sondern Hostingpaket all-inkl

Verfasst:
von
Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Verfasst: 05.11.2009, 14:39
von Bauchladen

Verfasst: 06.11.2009, 10:15
von Faruq
danke ist sehr gut

gibt es noch etwas womit man die variablen kürzen kann ?
der ähnlich wie YUI Compressor von yahoo

https://developer.yahoo.com/yui/compressor/

aber als php script ?


ansonsten großen dank

Verfasst:
von

Verfasst: 06.11.2009, 10:17
von Lord Lommel
Ist der JS-Code dynamisch ? Wenn nicht, reicht dir ein Ultra-Edit-Makro.

Verfasst: 06.11.2009, 10:21
von Bauchladen
Faruq hat geschrieben:..variablen kürzen kann..
https://dojotoolkit.org/docs/shrinksafe
oder YUI

Musst du mit PHP Systemaufruf kapseln

Wenn du den technischen Anlauf kurz anreist kann man vllt. noch weitere Tips geben. zb. ist unklar ob symbol obfuscation on the fly oder preupload passieren soll.

Re: Javascript Code mittels PHP Script komprimieren

Verfasst: 06.11.2009, 10:52
von Mork vom Ork
Faruq hat geschrieben:ich suche ein php-script, mit dem ich javaScript-dateien komprimieren kann.
Ich weiß nicht, warum du ausgerechnet ein PHP-Skript haben willst, aber: Falls es sich um statischen Code handelt, solltest du ihn grundsätzlich besser statisch belassen und nicht durch eine zusätzliche Verarbeitung bei jedem Aufruf aufblähen. Das, was du an Übertragungszeit durch die Javascript-Verkürzung einsparst, schlägst du dann möglicherweise durch die für die Verkürzung notwendige Arbeit wieder drauf.

JSMin ist ein bewährtes Werkzeug, um Javascript-Code offline einzudampfen. Außerdem gibt es codetrim, packer und Crunchinator. jsbuilder verheddert sich fürchterlich bei Kommentaren und Klammern in Zeichenketten, nicht empfehlenswert.

Noch deutlichst effektiver ist es davon abgesehen, Javascript-Dateien ganz einfach per gzip zu komprimieren. Du legst dann das Original als skript.js.js (doppelte Endung!) und die komprimierte Fassung als skript.js.gz auf dem Server ab, verweist aber weiterhin auf skript.js (einfache Endung!). Setzt du dann noch in eine betreffende .htaccess die Zeile Options +multiviews sucht sich der Apache von ganz alleine die passende Datei.

Ich hab's kurz verglichen:

5.408 Original-Skript
1.584 Mit gzip komprimiert
4.209 jsmin
4.108 Codetrim
4.107 Packer
4.270 Crunchinator
1.300 Mit jsmin und gzip komprimiert

Den gleichen gzip-Effekt erreichst du, wenn du die Zeile AddOutputFilterByType DEFLATE text/css text/javascript in die oberste .htaccess einsetzt (funktioniert nur bei halbwegs aktuellen Apache-Versionen und sofern das Modul mod_deflate eingebaut ist, es gehört aber zum Standardumfang). Der Server komprimiert dann, so möglich, automatisch alle Daten vom Typ text/css und text/javascript beim Aufruf, du musst nichts weite machen.
Das widerspricht sich etwas mit meiner Erklärung, die ich eingangs gemacht habe, allerdings handelt es sich hier nicht um ein PHP-Skript, sondern um Maschinencode, der ist per se schon deutlich fixer, die gzip-Kompression spart zudem deutlich mehr Bytes ein als jede Javascript-Verkürzung, und die Offline-Komprimierung würde ich nichtsdestotrotz bevorzugen.

Du kannst auch noch andere Typen an die Zeile anhängen, namentlich natürlich text/html und text/plain - das ist aber nicht unbedingt notwendig, weil die eigentlich schon per Vorgabe komprimiert werden. Ein Blick auf die Serverantwort gibt Auskunft, komprimierte Daten werden mit Content-Encoding: gzip angekündigt.