jQuery und die CDN-Problematik
Kommentare
Anfang letzter Woche haben zahlreiche Websites, deren Funktionalitäten auf der JavaScript-Bibliothek jQuery basieren, ihren Dienst versagt. Schuld daran war ein Problem mit...

Anfang letzter Woche haben zahlreiche Websites, deren Funktionalitäten auf der JavaScript-Bibliothek jQuery basieren, ihren Dienst versagt. Schuld daran war ein Problem mit dem Repository, das die Dateien für das jQuery-CDN zur Verfügung stellte. Dabei wurde ein altes Problem neu aufgerollt, nämlich die Einbindung von jquery-latest.js beziehungsweise jquery-latest.min.js über das CDN. Das führte nun zu einem Aufruf des jQuery-Core-Teams: Don’t use jquery-latest.js on a production site.

jQuery und das Problem jquery-latest.js

Das Problem geht tiefer, als man zunächst meint, denn das Core-Team von jQuery hat einen guten Grund, von der Verwendung der Dateien jquery-latest.js und jquery-latest.min.js im produktiven Umfeld abzuraten:

[S]ome developers include this version directly in their production sites, exposing users to the risk of a broken site each time a new version of jQuery is released.

Das Problem liegt ganz klar auf der Hand: So sehr sich das Team auch bemüht, kann es natürlich nicht garantieren, dass es nicht doch zu dem einen oder anderen Breaking Change mit dem Release einer neuen Version kommt. Vertrau man nun blind auf die jeweils aktuellste Version von jQuery, kann es am Ende passieren, dass der Nutzer nicht die Funktionalität erhält, die man ihm bieten möchte.

Problemfall Browser-Support

Schlimmer wird die Sache, wenn man einen Blick in die Vergangenheit wirft:

To mitigate the risk of “breaking the web”, the jQuery team decided back in 2013 that jquery-latest.js could not be upgraded to the 2.0 branch even though that is technically the latest version.

Bereits im April berichteten wir über den Browser-Support künftiger jQuery-Versionen. Damals bereits stand fest, dass jQuery 1.12 die letzte Version ist, die einen Support für die Internet Explorer 6 und 7, sowie für Opera 12.1.x sowie Safari 5.1 bieten werde.

Schon damals hatte Dave Methvin vom Core-Team einen Appell an Entwickler gerichtet: Vor einem Upgrade auf eine kommende jQuery-Version sollte man herausfinden, welche Browser die Besucher der eigenen Website bzw. Applikation nutzen. Erst dann solle man ein Update in Betracht ziehen.

jQuery und das CDN

So weit, so gut. Betrachtet man die Situation, drängen sich natürlich zwei Fragen auf: Zum einen natürlich, ob die Dateien wirklich so oft eingebunden werden, um zu einem Problem zu werden.

Um diese Frage zu beantworten, genügt ein Blick auf die CDN-Statistiken aus dem Jahr 2013. Die sind aufgrund der nackten Zahlen schon mehr als beeindruckend – zeigen allerdings auch die Wurzel des Problems:

jQuery CDN-Statistik Abb. 1: You Got Served! Quelle: jQuery

6,36 Milliarden Hits auf jquery-latest.js im jQuery-CDN. Eine Zahl, bei der man erst einmal durchatmen muss. Hat man das getan, wird deutlich, dass diese Zahl nach der oben genannten Begründung wirklich zum Problem wird. Was uns natürlich zur zweiten Frage führt: Warum liegt die Datei dann überhaupt auf dem CDN?

jQuery und das Problem jquery-latest.js, Teil 2

Im Aufruf Don’t Use jquery-lates.js heißt es zur Frage, warum die besagten Dateien überhaupt auf dem CDN liegen:

The jquery-latest.js and jquery-latest.min.js files were meant to provide a simple way to download the latest released version of jQuery core.

… und das in der Development-Umgebung – nicht jedoch auf dem Produktiv-Server.

Daraus folgend ergeben sich natürlich zahlreiche Überlegungen. So wird in den Kommentaren angeregt, gänzlich auf die Datei zu verzichten und sie auf der Website über einen simplen Download-Link zur Verfügung zu stellen.

Andere Überlegungen gehen in die Richtung, ein Warning in der Console auszugeben, in der Art von: „The version of jQuery used by this page is not meant to be used in production.“ – eine Überlegung, die bereits im jQuery-Core-Team diskutiert wurde.

Gegenmaßnahmen

Aufgrund der Problematik hat das Team nun beschlossen, die Datei auf dem CDN code.jquery.com/jquery-latest.js sowie ihr .min-Pendant nicht mehr zu aktualisieren – sie werden bin in alle Ewigkeit auf Version 1.11.1 verharren. Wer die aktuellste Version benötigt, kann sie von der Download-Seite herunterladen oder sie unter Angabe der Versionsnummer vom offiziellen CDN einzubinden.

Lobenswerterweise unterstütz Google die Bemühungen des jQuery-Teams und friert die Datei jquery.js auf ajax.googleapis.com/ajax/libs/jquery/1/jquery.js ebenfalls auf Version 1.11.1 ein. Außerdem hat sie eine sehr kurze Cache-Zeit bekommen, was gegenüber der Verwendung einer spezifischen Version zu Performance-Einbußen führt.

Für Webentwickler bedeutet das nun, ihre Websites und Applikationen auf die Verwendung von jquery-latest.js hin zu untersuchen und bei Bedarf auf eine Version im CDN zu verweisen. Es sei denn natürlich, man kann damit leben, jQuery 1.11.1 zu verwenden.

Aufmacherbild: File transfer concept von Shutterstock / Urheberrecht: jijomathaidesigners

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -