+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 15 von 16

Thema: Tipp: Ladezeiten bei Javascript sparen

  1. #1
    TP-Moderator Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.806

    Tipp: Ladezeiten bei Javascript sparen

    Bei vielen neuen Features kommt oft eine eine Vielzahl an Javascript zur Anwendung. Dazu werden teilweise recht große Javascripte eingebunden, die zum einen Zeit zum laden brauchen, und so den Aufbau bzw. die Funktion einer Webseite beeinträchtigen.

    Um dieses zu umschiffen, kann man die Javascripte mittels mod_gzip an den Browser senden, um die Größe der Javascripte deutlich zu verkleinern.

    Und so geht man vor:

    Man erstelle eine .htaccess Datei mit folgendem Inhalt:

    Code:
    <IfModule mod_gzip.c>
    mod_gzip_on                Yes
    mod_gzip_dechunk            Yes
    mod_gzip_minimum_file_size    500
    mod_gzip_maximum_file_size    500000
    mod_gzip_maximum_inmem_size   60000
    mod_gzip_handle_methods       GET POST
    mod_gzip_keep_workfiles    No
    mod_gzip_temp_dir          /tmp
    mod_gzip_item_include      file \.js$
    mod_gzip_item_include      mime ^text/.*
    mod_gzip_item_include      mime ^application/x-httpd-php
    mod_gzip_item_include      handler ^perl-script$
    mod_gzip_item_include      handler ^server-status$
    mod_gzip_item_include      handler ^server-info$
    mod_gzip_item_exclude      mime ^image/.*
    mod_gzip_dechunk              Yes
    </IfModule>
    
    AddType application/x-httpd-php .js
    Dadurch werden JS- Dateien durch den php- Parser gejagt und mittels mod_gzip gepackt.

    Ein Test bei mir hat ergeben, daß z.B. die prototype.js des Prototyp Frameworks mit dieser Methode nur noch mit 17k zu Buche schlägt, anstelle von 70k, was einer Datenreduzierung von ca. 75% entspricht..
    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr

  2. #2
    TP-Specialist phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Danke für den Tipp

    Zum Thema passend gibt es auch eine Variante für PHP
    PHP-Code:
    ob_start('ob_gzhandler'); 
    Damit läßt sich die Ausgabe einer Seite gzipen bevor sie an den Browser geschickt wird.
    Und auf dieser Seite kann man prüfen ob alles mit dem gzipen so funktioniert wie es sollte.

  3. #3
    TP-Moderator Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.806
    Wer will, kann die oben genannte Variante auch für PHP- Dateien, HTML und andere Formate anwenden (jsp, pl).
    Vorteil ist bei PHP, daß man es nicht immer in die entsprechende Dateien reingeschrieben werden muss.

    Nicht zu empfehlen ist die Anwendung auf Bilddateien, da diese oft schon komprimiert sind und dort keine weitere Verkleinerung zu erwarten ist.

    Nach meinen Erfahrungen verträgt sich die Variante auch nicht mit css- Dateien. Dort scheinen die Browser gzipte Dateien nicht mehr anwenden zu können..
    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr

  4. #4
    TP-Specialist designfanatiker hilft, wo's geht designfanatiker hilft, wo's geht designfanatiker hilft, wo's geht Avatar von designfanatiker
    Registriert seit
    Nov 2004
    Ort
    Oberbayern
    Beiträge
    2.314
    Hab' mal irgendwo folgenden Schnipsel aufgeschnappt:

    HTML-Code:
    php_flag output_buffering On
    php_value output_handler ob_gzhandler
    php_flag zlib.output_compression Off
    Irgendwie deutlich kürzer. Aber wo liegt denn nun der Unterschied?

  5. #5
    TP-Specialist phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Zitat Zitat von designfanatiker Beitrag anzeigen
    Irgendwie deutlich kürzer. Aber wo liegt denn nun der Unterschied?
    Der Unterschied liegt darin, daß beim Script von Adromir die Komprimierung durch den Webserver (via gzip-Modul) durchgeführt und immer angewendet wird. Deine kurze Version dagegen ändert nur Einstellungen in der php.ini, so daß der Output von PHP Scripts standardmäßig komprimiert wird. Im Prinzip ist deins die automatisierte Version von dem was ich oben gepostet habe. Siehe php.net
    Adromir's Version funktioniert also immer, unabhängig von PHP, während "unsere" Version nur bei PHP Scripts greift. (Deswegen schrieb ich oben auch "PHP Variante" dazu)

  6. #6
    TP-Specialist designfanatiker hilft, wo's geht designfanatiker hilft, wo's geht designfanatiker hilft, wo's geht Avatar von designfanatiker
    Registriert seit
    Nov 2004
    Ort
    Oberbayern
    Beiträge
    2.314
    Das temporäre Verzeichnis sollte man aber bei der Version von Adromir noch anpassen, oder?

    Zitat Zitat von Adromir Beitrag anzeigen
    Ein Test bei mir hat ergeben, daß z.B. die prototype.js des Prototyp Frameworks mit dieser Methode nur noch mit 17k zu Buche schlägt, anstelle von 70k, was einer Datenreduzierung von ca. 75% entspricht..
    Sind diese Frameworks nicht standardmäßig komprimiert?

  7. #7
    TP-Moderator Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.806
    Also ich hatte die prototype.js und die war bei 70k. Aber die Scripte sind in aller Regel nur insofern "komprimiert", als das die Zeilenumbrüche entfernt wurden. Das ist keine Komprimierung mit Hilfe eines speziellen Algorithmus, der deutlich höhere Komprimierungsraten erziehlt.

    Ein weiterer Vorteil meiner Variante ist, daß er natürlich deutlich genauer konfiguriert werden kann (die von mir gepostete Variante ist auf den empfohlenen Standartwerten) und zu keinem 500 Serverfehler führt, wenn die entsprechenden Module nicht installiert sind..
    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr

  8. #8
    TP-Specialist designfanatiker hilft, wo's geht designfanatiker hilft, wo's geht designfanatiker hilft, wo's geht Avatar von designfanatiker
    Registriert seit
    Nov 2004
    Ort
    Oberbayern
    Beiträge
    2.314
    Werd' das bei Gelegenheit mal ausprobieren. Muss das temporäre Verzeichnis an einem bestimmten Ort liegen oder kann man hier einen absoluten Pfad angeben?

  9. #9
    TP-Moderator Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.806
    Also ich hab es bis jetzt noch nie angelegt und hatte keine Probleme.. Der Pfad muss dann absolut vom Root aus sein..
    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr

  10. #10
    TP-Specialist designfanatiker hilft, wo's geht designfanatiker hilft, wo's geht designfanatiker hilft, wo's geht Avatar von designfanatiker
    Registriert seit
    Nov 2004
    Ort
    Oberbayern
    Beiträge
    2.314
    Ich befürchte nur, dass ich dort keine Daten hinterlegen darf. Vielleicht gibt's ja ein standardmäßiges temporäres Verzeichnis?

  11. #11
    TP-Moderator Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.806
    Du kannst ja mal einen Ordner erstellen, der als tmp- Verzeichnis dient und den in der direktive bsolut vom Root-Verzeichnis aus angeben..
    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr

  12. #12
    TP-Specialist designfanatiker hilft, wo's geht designfanatiker hilft, wo's geht designfanatiker hilft, wo's geht Avatar von designfanatiker
    Registriert seit
    Nov 2004
    Ort
    Oberbayern
    Beiträge
    2.314
    Funktioniert. Damit lassen sich etwa 75 Prozent einsparen. Klasse!

    ---------------------------------------------------

    Zitat Zitat von Adromir Beitrag anzeigen
    Dadurch werden JS- Dateien durch den php- Parser gejagt und mittels mod_gzip gepackt.
    Lässt sich das Ding eigentlich auch für Stylesheets verwenden?

    ---------------------------------------------------

    Funktioniert leider doch nicht. Hatte vergessen den oben von mir genannten Schnipsel zu entfernen. Die Website http://whatsmyip.org/mod_gzip_test/ zeigt sie zumindest nicht an.
    Geändert von phpBuddy (01.08.2007 um 22:12 Uhr) Grund: 3-fach Post zusammengefasst

  13. #13
    TP-Moderator Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.806
    @designfanatiker: Welches funzt nicht? Meine?
    Für Stylesheets scheint es nicht zu funzen, da wurden bei mir jedenfalls die Stylesheets im Browser nicht mehr geladen. Vieleicht liegt es an einem Grundsätzlichen Problem (Browser können gzippte Stylesheets nicht verarbeiten) oder an einem falsch ausgelieferten Mime oder so..
    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr

  14. #14
    TP-Specialist designfanatiker hilft, wo's geht designfanatiker hilft, wo's geht designfanatiker hilft, wo's geht Avatar von designfanatiker
    Registriert seit
    Nov 2004
    Ort
    Oberbayern
    Beiträge
    2.314
    Zitat Zitat von Adromir Beitrag anzeigen
    @designfanatiker: Welches funzt nicht? Meine?
    Ja. Villeicht ist das entsprechende Modul auf den Servern von all-inkl.com nicht vorhanden.

    Zitat Zitat von Adromir Beitrag anzeigen
    Für Stylesheets scheint es nicht zu funzen, da wurden bei mir jedenfalls die Stylesheets im Browser nicht mehr geladen. Vieleicht liegt es an einem Grundsätzlichen Problem (Browser können gzippte Stylesheets nicht verarbeiten) oder an einem falsch ausgelieferten Mime oder so..
    Ursache dürfte der falsche MIME-Typ sein. Hab' ein wenig gegoogelt: Dafür scheint es keine elegante Lösung zu geben.

    @Rizzo: Finger weg von meinen Beiträgen!

  15. #15
    TP-Specialist phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Zitat Zitat von designfanatiker Beitrag anzeigen
    Ja. Villeicht ist das entsprechende Modul auf den Servern von all-inkl.com nicht vorhanden.


    Ursache dürfte der falsche MIME-Typ sein. Hab' ein wenig gegoogelt: Dafür scheint es keine elegante Lösung zu geben.

    @Rizzo: Finger weg von meinen Beiträgen!
    Das kann all-inkl wohl besser beantworten als wir hier, weil wir keine Einsicht in die Konfiguration derer Server haben.

    Für CSS Dateien lohnt sich der ganze Aufwand und die evtl damit auftretenden Probleme eh nicht, da sich bei CSS Dateien wohl weniger als 3-5 KB rausholen lassen.

    Und Deine Beiträge lasse ich dann in Ruhe, wenn Du keine doppel- und 3-fach Posts mehr machst. Besonders dann, wenn man hätte die Beiträge noch editieren können und/oder sich das ganze in einem Sticky ereignet, der eigentlich kurz und übersichtlich gehalten werden soll.

    Wenn Du den letzten Absatz diskutieren willst, weil Du eine andere Auffassung hast, dann bitte per PN, da dieser Thread dafür ungeeignet ist.

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

LinkBacks (?)

  1. 09.09.2008, 14:14

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

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