TP Underground Lounge 07/08
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 07.01.2008, 01:48   #1
TP-Moderator
 
Benutzerbild von Adromir
 
Registriert seit: Jun 2004
Ort: Hannover
Adromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKE

Javascript Kombinierer & Kompressor


Da ich schon öfters das Problem hatte, daß bei meinen Seiten Javascriptfunktionen nicht geladen wurden, wenn ich mehrere externe Javascripts auf meiner Seite eingebettet habe, hab ich heute dieses Script geschrieben.

Was macht es?
Es fügt mehrere externe Javascriptdateien zu einer einzigen zusammen.
Man muss also nicht mehr sowas wie:
Code:
<script src="script1.js" type="text/javascript"></script>
<script src="script2.js" type="text/javascript"></script>
<script src="script3.js" type="text/javascript"></script>
Schreiben, sondern ein einfaches
Code:
<script src="js-combiner.php" type="text/javascript"></script>
reicht dann aus.

Zu recht werden sich jetzt einige Fragen: "Und was bringt mir das? Ich kann die Dateien ja auch per Hand zusammenkopieren?"

Hier die Antwort darauf:
Das Script kombiniert nicht nur die Dateien, sondern ist noch mit verschiedenen Methoden ausgerüstet, um Daten und Ladezeit zu sparen.

1. Die zusammengesetzten Dateien werden auf dem Webspace gecached
2. Die Dateien können per mod_gzip oder das zlib Modul gzipped ausgeliefert werden um Dateigröße und damit Bandbreite und Ladezeiten zu sparen.
3. Überflüssige Codebestandteile, wie Kommentare, Doppelte Leerzeichen und Zeilenumbrüche werden entfernt um die Größe weiter zu drücken.
4. Alle Optionen können per Konfiguration abgeschaltet werden.

Als Beispiel: Ich hab mal als Test das prototype Framework und die Mootools geladen. Die Größe der Gesamtdatei sank mit allen Optionen von 137K auf schlanke 24K.

Wenn ihr fragen zu dem Script habt, oder es euch gefällt, schreibt einfach hier rein.

Script ist als gezippte Datei an diesen Beitrag angehängt.
Die Dokumentation ist auf Englsich (btw. wenn jemand da was auffällt, wegen Rechtschreibfehler oder Ausdrucksweise, wäre ich für Hinweise sehr dankbar).

gruß
Adromir
Angehängte Dateien
Dateityp: zip js-combiner.zip (2,0 KB, 10x aufgerufen)
__________________
Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
-Dieter Nuhr
Adromir ist offline   Mit Zitat antworten
Linktipp

Alt 07.01.2008, 02:00   #2
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
Hi,

hört sich interessant an, werde ich mir mal anschauen.
Danke für das Script!
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
chmod( 'internal.php', 0444 );
Rizzo ist gerade online   Mit Zitat antworten
Alt 07.01.2008, 02:05   #3
TP-Moderator
 
Benutzerbild von Adromir
 
Registriert seit: Jun 2004
Ort: Hannover
Adromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKE
Wenn du verbesserungsvorschläge hast, immer her damit. Bin ja nicht so ein Profiprogrammierer
__________________
Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
-Dieter Nuhr
Adromir ist offline   Mit Zitat antworten
Alt 07.01.2008, 20:30   #4
TP-Moderator
 
Benutzerbild von Adromir
 
Registriert seit: Jun 2004
Ort: Hannover
Adromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKE
*überleg* Mit einer kleinen Anpassung wäre es auch CSS- tauglich.
Wenn gewünscht, könnte ich eine zweite CSS- Version basteln, die auch typische (und einfache) Codeveränderungen macht (z.B. aus #FFFFFF #FFF oder aus 0px einfach 0), solange die Sachen nicht zu komplex sind und einen CSS- Parser benötigen... Obwohl.. Warum nicht auch das
__________________
Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
-Dieter Nuhr
Adromir ist offline   Mit Zitat antworten
Alt 15.01.2008, 07:16   #5
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
Hallo Andreas,

da das Forum ja einige Tage down war habe ich die Zeit genutzt und mal einige Scripts getestet, so auch den JS-Combiner. Leider muß ich dir sagen das der Combiner nicht immer anwendbar ist. Einige JS-Scripts haben Probleme damit wenn die Whitespaces entfernt wurden. Mit Probleme meine ich, daß sie schlicht nicht funktionieren - ein Beispiel habe ich mal angehängt. Es ist ein simples Script um Tabs zu erzeugen, daß mit Whitespaces = false (keine Whitespaces entfernen) korrekt funktioniert und mit Whitespaces = true (Whitespaces entfernen) seinen Dienst verweigert.

Ein weiteres Problem das auftrat (das mir allerdings gerade auch nicht einleuchten will) ist, das (manchmal?!) eine weiße Seite ausgegeben wird, wenn man die mod_gzip Kompression im JS-Combiner verwendet, aber zuvor ob_start("ob_gzhandler") manuell gestartet wurde. Das scheint eine verschachtelte Kompression zu erzeugen die Probleme verursachen kann.

Treten die beiden genannten Probleme nicht auf, funktioniert das Script soweit aber gut.
Die Erweiterung für CSS hört sich gut an und dürfte auch weniger anfällig sein, also go for it!

Viele Grüße,
Andreas
Angehängte Dateien
Dateityp: zip packer_test.zip (11,9 KB, 2x aufgerufen)
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
chmod( 'internal.php', 0444 );
Rizzo ist gerade online   Mit Zitat antworten
Alt 16.01.2008, 12:03   #6
TP-Moderator
 
Benutzerbild von Adromir
 
Registriert seit: Jun 2004
Ort: Hannover
Adromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKE
Hallo Rizzo. Das mit den Whitespaces hab ich auch schon gemerkt. Das ist wohl sehr stark vom Javascript selbst abhängig. Denn ebenso kann die Funktion Kommentare zu entfernen das gleiche Problem bedeuten.

Das mit der mod_gzip Sache, ist ebenso bekannt.

Für beide Probleme habe ich leider keine programmiererische Lösung. Ich denke, daß ich da nur die Doku mit den entsprechenden Hinweisen erweitern kann. Aber vieleicht hast du da ne Möglichkeit?
__________________
Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
-Dieter Nuhr
Adromir ist offline   Mit Zitat antworten
Alt 16.01.2008, 12:26   #7
TP-Moderator
 
Benutzerbild von Malleus
 
Registriert seit: Aug 2004
Ort: Homburg / Saarland
Malleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKEMalleus ist ein richtiges Arbeitstier - DANKE
@Rizzo: Die Probleme kenne ich auch bei meinem "Lieblingskomprimierer" : Du mußt absolut syntaktisch korrekte Scripte schreiben. Dabei gilt: Lieber ein ";" zuviel als zu wenig. Ich hab' da manchmal "ewig" gesucht bis alles wieder lief.

@Adromir: Hatte leider noch keine Zeit, mir Dein "Tool" anzuschauen, werd's aber mal austesten.
Malleus ist offline   Mit Zitat antworten
Alt 17.01.2008, 15:22   #8
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Weyhe
DSB hilft, wo's gehtDSB hilft, wo's gehtDSB hilft, wo's gehtDSB hilft, wo's geht
Eine Frage: ist es bei der Einbindung per Endung .php nicht so, dass die Datei immer neu vom Server abgeholt wird und damit das browserinterne Caching verhindert wird? Ich bin mir da gerade nicht sicher.
__________________
Gruß, DSB
Einfaches Backup/ Restore Deiner MySQl-Datenbank
DSB ist offline   Mit Zitat antworten
Alt 17.01.2008, 15:41   #9
TP-Moderator
 
Benutzerbild von Adromir
 
Registriert seit: Jun 2004
Ort: Hannover
Adromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKE
Also ich hab eigentlich einen Header eingefügt, der das Browserinterne Caching eigentlich explizit aktivieren sollte.. Der Cache verfällt dann zeitgleich mit der Cachedatei auf dem Server.
__________________
Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
-Dieter Nuhr
Adromir ist offline   Mit Zitat antworten
Alt 17.01.2008, 17:31   #10
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Weyhe
DSB hilft, wo's gehtDSB hilft, wo's gehtDSB hilft, wo's gehtDSB hilft, wo's geht
Abgesehen davon, das ich das von Dir eingangs erwähnte Problem noch nicht hatte, sehe ich dann trotz Deiner lobenswerten Verkleinerungsmethode der Datei aber keinen Vorteil.
Mir ist es doch lieber, dass einmal eine 124k große Datei geladen und anschließend aus dem Cache geholt wird, als bei jedem Seitenaufruf erneut 24k. Bei 5 Seitenaufrufen ist der Vorteil dahin. Gut, letztlich ist die Verkleinerung der JS-DAtei ja auch unabhängig davon, aber wirkt es nicht eher hinderlich wenn die Dateien jedes mal neu geladen werden?
__________________
Gruß, DSB
Einfaches Backup/ Restore Deiner MySQl-Datenbank
DSB ist offline   Mit Zitat antworten
Alt 17.01.2008, 18:00   #11
TP-Moderator
 
Benutzerbild von Adromir
 
Registriert seit: Jun 2004
Ort: Hannover
Adromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKE
Wie schon gesagt, eigentlich müsste der Browser die Datei auch cachen. Er wird ja explizit dazu angehalten.
Desweiteren wäre mir nicht bekannt, daß *.php Dateien vom Browser nicht gecached werden, hab es schon oft genug anders erlebt.

Wem das mit dem Caching noch nicht ganz geheuer ist, der kann den Kombiner als *.js in einen Unterordner speichern und dort eine .htaccess- Datei mit dem Inhalt
Code:
addtype application/x-httpd-php .js
ablegen.
Dann sollte es ganz sicher mit dem cachen der Datei im Browsercache klappen.

Je nachdem, wie die Scripte sind, ist der komprimierungsgrad noch höher.
Mein Rekord war bis jetzt Scripte in der Größe von 300k auf ca. 24k zu verkleinen.
__________________
Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
-Dieter Nuhr
Adromir ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik > Traum-Scripts
Javascript Kombinierer & Kompressor Javascript Kombinierer & Kompressor
« Script zum download ohne "ziel speichern unter" | PHP Bildergalerie mit MySQL »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:40 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 RC7 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67