WordPress Tuning – Jquery und Prototype vom Google-Server laden
Beim laden jeder einzelnen WordPress-Seite werden immer wieder die gleichen JavaScript-Dateien vom eigenen Server geladen. Das ist grundsätzlich kein Problem. Je mehr Traffic ein Blog erhält umso mehr wird man jedoch versuchen müssen die Ladezeiten zu optimieren. Ein Ansatzpunkt ist die häufig verwendeten JavaScript-Bibliotheken JQuery und Protoype nicht vom eigenen Server zu laden, sondern von einem Google-Server.
Google pflegt sämtliche gängigen JavaScript-Libraries auf einem eigenen Server und hat auch sehr gut dokumentiert wie man auf diese zugreifen kann. Für mich hat das Laden der Libs von Google drei Vorteile:
- Ich spare ein bisschen Bandbreite. Die Bandbreite ist nicht wirklich der Rede wert, aber es ist halt effizienter wenn die einzelnen Dateien von mehreren Server ausgeliefert werden, statt von einem.
- Google hat ein CDN (Content Delivery Network), welches aus vielen vielen Servern weltweit besteht. Von diesem Netzwerk können die einzelnen Dateien viel schneller an die verschiedensten Standorte ausgeliefert werden, als wenn alles von meinem Server kommt.
- Google komprimiert die Dateien automatisch. Leider habe ich es bis heute nicht hinbekommen meinen Server GZip-tauglich zu machen, daher bin ich ganz froh, dass die Dateien nun komprimiert von Google ausgeliefert werden.
Um die Libs nun von Google in Deinem WordPress-Blog zu verwenden muss man lediglich ein bisschen Code in die functions.php des WordPress-Themes einbauen. Das sieht dann so aus:
if( !is_admin()){
wp_deregister_script('jquery');
wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"), false, '1.3.2');
wp_enqueue_script('jquery');
wp_deregister_script('prototype');
wp_register_script('prototype', ("http://ajax.googleapis.com/ajax/libs/prototype/1.6.1.0/prototype.js"), false, '1.6');
wp_enqueue_script('prototype');
}
Das war’s schon. Anschließend werden die JavaScript-Dateien vom Google-Server geladen.
Welche Handler es sonst noch in WordPress gibt über die Ihr weitere Skripte ersetzen könnte ist auf dieser WordPress-Seite beschrieben.
Vorher:
Nachher:
Leider musste ich jedoch feststellen, dass anschließend mein Lightbox-Plugin nicht mehr funktioniert. Da müssen sich irgendwie die ganzen Javascripte in die Quere kommen. Daher habe ich das Ganze bei mir erst mal wieder Rückgängig gemacht, bis ich dafür eine Lösung gefunden habe. Vielleicht hat ja noch jemand von Euch einen Tipp.










Schon 8 Kommentare
22. Dezember 2009
hmm, ich hab zeitweise extreme Probleme mit Javascriptfiles auf Googleservern gehabt, sodass wir sie wieder direkt auf den Servern liegen haben, denn in ca. 30% der Aufrufe hab ich fast ne Sekunde auf die Auslieferung warten müssen.
Zudem vergleichst du hier einen Apfel mit einer Kiste Äpfeln. Du hast bei dir Lokal die jquery.js. Das ist die, für Entwickler. Mit lesbaren Code und Kommentaren. Bei Google lädst du die jquery.mini. Diese ist für den Livebetrieb optimiert. Ohne unnötige Whitespaces, ohne Kommentare etc. Den unterschied erkennst du schon an der Größe (bei dir 52k bei Google 19k). Ich würde behaupten, dass das Laden der Daten von deinem Server, wenn der denn ordentlich eingerichtet ist, erheblich schneller geht, weil die Verbindung zu deinem Server noch offen sein sollte.
22. Dezember 2009
Also wenn Du wirklich Performance aus neunzehn72.de “herauskitzeln” willst, sollten wir beide uns mal über Varnish unterhalten. Verwenden wir auch aktuell in der Speicherstadt. Da brauch dann auch nix zu Big Brother “Google” ausgelagert werden…. Halte ich pers. mehr von!
22. Dezember 2009
@Thorsten: Das hört sich nett an, aber mit meinen Kenntnissen nicht zu realisieren.
22. Dezember 2009
Anstatt mod_gzip bzw. für Apache2 mod_deflate sollten wir das bei Dir mal einsetzen. Bin doch sowieso dabei. Lass uns heute o. morgen mal abends kurz telefonieren…
LG..
22. Dezember 2009
Gerne
22. Dezember 2009
Die Ladezeiten-Stats sehen interessant aus – womit sind die gemacht?
22. Dezember 2009
Die sind mit Firebug gemacht.
22. Dezember 2009
Alles klar, danke