Vortrag zum Thema "Ladezeiten Verbessern - CSS und JavaScript Komprimierung". Entwickelt wurde die Präsentation für die Vortragsreihe im Rahmen der WebDevFulda-Treffen.
3. Was passiert in der Zeit Was passiert in der Zeit Werkzeuge für die Analyse Analysieren der Inhalte Möglichkeiten beim CSS JavaScript Komprimieren Weitere Optimierung GZIP Komprimierung nutzen Cache aktivieren Zusammenfassung
4. Was passiert in der Zeit … HTTP/1.0 200 OK Date: Fri, 15 Jun 2009 16:04:22 GMT Content-Language: de Content-Type: text/html;charset=utf-8 <HTML>…</HTML>
9. Wie viel Zeit ist verstrichen? Quelle: www.webpagetest.org Der Browser könnte loslegen, wenn schon alle Dateien da wären!
10. Werkzeuge für die Analyse Was passiert in der Zeit Werkzeuge für die Analyse Analysieren der Inhalte Möglichkeiten beim CSS JavaScript Komprimieren Weitere Optimierung GZIP Komprimierung nutzen Cache aktivieren Zusammenfassung
11. Online Tools z. B. www.webpagetest.org Werkzeuge für die Analyse
16. Analysieren der Inhalte Was passiert in der Zeit Werkzeuge für die Analyse Analysieren der Inhalte Möglichkeiten beim CSS JavaScript Komprimieren Weitere Optimierung GZIP Komprimierung nutzen Cache aktivieren Zusammenfassung
17. Wo kann man optimieren? Quelle: www.webpagetest.org Nach 6 Sekunden beginnt der Browser die Seite zu rendern (letzt CSS / JS Datei). Nach 11,8 Sekunden ist die Seite fertig geladen. Test mit einer 1.5 Mbit/s aDSL Leitung in den USA … Erster Aufruf
18. Analysieren der Inhalte Browser … wartet HTML CSS JavaScript Browser … rendert Bilder (in- und extern) Audio / Video RSS (fremde Inhalte) <imgsrc=“images/bild.jpg“ width=“100“ height=“
19. Möglichkeiten beim CSS Was passiert in der Zeit Werkzeuge für die Analyse Analysieren der Inhalte Möglichkeiten beim CSS JavaScript Komprimieren Weitere Optimierung GZIP Komprimierung nutzen Cache aktivieren Zusammenfassung
20. Beispiel für die CSS Komprimierung .button { border-left-width: 6px; border-left-style: solid; border-left-color: rgb(153,153,153); border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: rgb(153,153,153);} 216
30. JavaScript komprimieren Was passiert in der Zeit Werkzeuge für die Analyse Analysieren der Inhalte Möglichkeiten beim CSS JavaScript Komprimieren Weitere Optimierung GZIP Komprimierung nutzen Cache aktivieren Zusammenfassung
31. Das JavaScript Framework „mootools“ hat ca. 72 KByte Kann man „mootools.js“ komprimieren? Werden die „mootools.js“ überhaupt benötigt?
39. Weitere Optimierungen Was passiert in der Zeit Werkzeuge für die Analyse Analysieren der Inhalte Möglichkeiten beim CSS JavaScript Komprimieren Weitere Optimierung GZIP Komprimierung nutzen Cache aktivieren Zusammenfassung
41. Deklaration von JavaScript Funktionen Der Aufruf der Funktion kann vor oder nach der Deklaration der Funktion sein. Probleme (z. B. mit Simple Mooticker) wenn mootools erst zum Schluss geladen werden.
42. Probleme beim sofortigen ausführen von Skripten Werden Funktionen nicht über Ereignisse, sondern direkt im Quelltext aufgerufen, so muss die Funktion vorher deklariert worden sein. Daher werden manche Erweiterungen laufen und manche nicht. Testen, testen, testen …
43. CSS- und JavaScript-Dateien zusammenführen … Alle JavaScripts in eine Datei (1 statt 2 Requests) Alle CSS-Formatierungen in eine Datei (1 statt 5 Requests) Reduziert die Anforderungen von 7 auf 2
44. Der Browser hat Schuld … Anzahl gleichzeitiger Verbindungen früher IE 7, Firefox 2 (zwei) Anzahl gleichzeitiger Verbindungen heute IE 8, Firefox 3 (sechs) Safari, Opera (vier)
45. Inhalte auf mehrere Server verteilen HTTP 1.1 Spezifikation: Max. zwei gleichzeitige Verbindung zum Server Firefox 2 zwei Firefox 3 sechs Opera 9.26: vier Opera 10.50: 16 … !!! Safari 3 Max/Windows: vier IE 7: zwei IE 8: sechs / zwei Server 1 Server 2 Browser
46. Inhalte auf mehrere Server verteilen Hauptinhalte: www.joomla-fulda.de Bilder img.joomla-fulda.de
48. ? Gedanken zum Hosting Der Server des Billighosters ist für 1,45 € im Monat genau so schnell wie der Server des Premium Hosters für 79,00 € im Monat
49. GZIP Komprimierung nutzen Was passiert in der Zeit Werkzeuge für die Analyse Analysieren der Inhalte Möglichkeiten beim CSS JavaScript Komprimieren Weitere Optimierung GZIP Komprimierung nutzen Cache aktivieren Zusammenfassung
60. mootools als php einbinden Die index.php des Templates entsprechend anpassen
61. mootools.jsohne gzip = 72 kByte mootools.js.php mit gzip = 20 kByte mootools als php einbinden
62. Cache aktivieren Was passiert in der Zeit Werkzeuge für die Analyse Analysieren der Inhalte Möglichkeiten beim CSS JavaScript Komprimieren Weitere Optimierung GZIP Komprimierung nutzen Cache aktivieren Zusammenfassung
78. Zusammenfassung Was passiert in der Zeit Werkzeuge für die Analyse Analysieren der Inhalte Möglichkeiten beim CSS JavaScript Komprimieren Weitere Optimierung GZIP Komprimierung nutzen Cache aktivieren Zusammenfassung
79. Zusammenfassung (1/3)Requests minimieren Alle Dateien vom selben Server _oder_Dateien auf max. 2-4 Server verteilen Fremde Inhalte erhöhen Zeit um eine weitere Sekunde, können Anz. Download aber erhöhen Anzahl der Serverzugriffe minimieren Alle CSS Dateien in eine Datei zusammenfassen Alle JS Dateien in eine Datei zusammenfassen
80. Zusammenfassung (2/3)Dateigröße reduzieren Code optimieren CSS-Farben: z. B. Hex Schreibweise statt RGB JavaScript: z. B. Kommentare entfernen CSS und JavaScript auslagern Wir nur einmal geladen GZIP nutzen PHP-Dateien meist kein Problem CSS, JavaScripts als php
81. Zusammenfassung (3/3)Rendern optimieren Erneutes „Rendern“ vermeiden Höhe und Breite von Bildern und Tabellen angeben. CSS Dateien in den <head> „Rendern“ früher beginnen JavaScripts am Ende (vor dem </body>) einbinden
82. Vielen Dank Präsentation auf webdevfulda.de Beitrag auf joomla-fulda.de Viel Spaß beim Testen der Möglichkeiten Kai Greinke