Auch Entwickler brauchen Platz zum Spielen

31. Juli 2014 /

Performance in WordPress: Mehrfaches Laden von jQuery prüfen

Die hilfsbereite Community und die unendliche Anzahl an frei verfügbaren Plugins versehen WordPress mit Flügeln und sorgen für die permanent steigende Popularität der Software. Manch eine WordPress-Erweiterung bereichert den Blog nicht nur um brauchbare Funktionen, auch Sicherheitslücken und Performance-Einbußen werden mit ausgeliefert. Letztere können beispielsweise durch mehrfaches Laden von JavaScript-Bibliotheken innerhalb der Blogseiten entstehen.

Mehr Schaden als Nutzen
Je nach Alter des Plugins und Wissensstand des Entwicklers verrichtet eine WordPress-Anwendung ihre Arbeit mehr oder weniger effizient, zuverlässig und abgesichert. Die eventuell vorhandenen Sicherheitsbedenken einer Software sollen jedoch nicht das Thema des Artikels sein. Vielmehr liegt der Fokus auf der Belastung der Blogseiten durch die wiederholte Einbindung von JavaScript-Bibliotheken wie jQuery oder Prototype.

Plugins, die optische Änderungen am Layout der Seiten vornehmen, binden intensiv JavaScript-Frameworks zur Unterstützung ein. An sich nichts Neues: Man greift gerne und oft auf ausgereifte Funktionen innerhalb dieser Frameworks zu. Es wird jedoch schnell zum Problem, wenn jedes Plugin die vorausgesetzte bzw. verwendete Library in den Quelltext der aktuellen Webseite lädt: Je nach Anzahl der aktivierten Erweiterungen im Blog kann z.B. jQuery mehrmals von unterschiedlichen Quellen (extern und/oder intern) in den Code eingebunden werden, wobei eigentlich damit immer nur eine Bibliothek gemeint ist und eine Singe-Referenz ausreichen würde. Der Browser lädt jedoch alle Variationen brav runter. Fette Ladezeiten lassen grüßen.

Regeln finden, Regeln einhalten
Das WordPress-Entwicklerteam hält für solch unschöne Momente die Funktion wp_enqueue_script bereit, die beim Aufruf im Theme oder Plugin ausgiebig prüft, ob die Library mit übergebenem Namen bereits angefordert und ausgegeben wurde. Der in den Core integrierte Check stellt somit sicher, dass eine bestimmte JavaScript-Bibliothek pro Seite wirklich nur einmal geladen wird, jedoch von allen Plugins in Anspruch genommen werden kann. Dadurch reduziert sich nicht nur die Gesamtgröße einer Blogseite, auch die Anzahl der kostbaren Requests sinkt ungemein. Mehr Informationen zum angesprochenen WordPress-Funktionsaufruf gibt Frank Bültge.

Resultierende Vorgehensweise
Ein Blick in den Browser-Quelltext verrät prompt, ob exemplarisch jQuery-Aufrufe dort zahlreich vertreten sind. In solchen Fällen bitte auf die neuste Version des verdächtigen Plugins aktualisieren und hoffen, der Fehler ist behoben. Andernfalls den Entwickler anschreiben und auf diesen Beitrag hinweisen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.