Nachdem jQuery 3.0 im Oktober 2014 angekündigt wurde, ist die neue Major-Version der JavaScript-Library nun eineinhalb Jahre später endlich veröffentlicht worden. Wir geben euch einen Überblick, was sich alles geändert hat und was neu ist.
Wie Timmy Willison im offiziellen Query-Blog erklärt, war es das übergeordnete Ziel, jQuery 3.0 vor allem schneller und schlanker zu machen sowie gleichzeitig abwärtskompatibel zu älteren Versionen der Library zu bleiben. Zunächst waren deshalb auch zwei Versionen geplant – jQuery 3.0 und jQuery Compat 3.0. Hiervon wurde dann aber im Laufe der Entwicklung Abstand genommen und sich auf die Verbesserung und Entwicklung einer Version konzentriert: das neue jQuery 3.0.
Neue Funktionen in jQuery 3.0
Über Bord geflogen sind alle alten Internet-Explorer-Workarounds, implementiert wurden hingegen moderne Web-APIs. Leider ließen sich einige Breaking Changes zur letzten Version des 2.x-Entwicklungszweigs nicht vermeiden, das jQuery Migrate Plugin hilft aber bei der Identifizierung von Kompatibilitätsproblemen.
Dafür gibt es aber auch eine ganze Reihe neuer Funktionen. Zu den neuen Features gehört unter anderem, dass jQuery.Deferred-Objekte hinsichtlich der Kompatibilität mit Promises/A+ und ECMAScript-2015-Promises aktualisiert wurden. Damit gehen auch umfangreiche Änderungen an der .then()-Methode einher, so dass zum Beispiel eine in einem .then()-Callback geworfene Exception im neuen jQuery 3.0 zu einem Rejection-Value wird. Außerdem wird der Resolution-Status eines mit .then() erstellten Deferred-Objekts jetzt von dessen Callbacks kontrolliert. Callbacks werden ab sofort immer asynchron aufgerufen.
Das war es aber noch lange nicht an Neuerungen in jQuery 3.0. catch()-Methode wurden als Alias für .then(null, fn) zu Promise-Objekten hinzugefügt, deprecated Event-Aliases (z.B. .load, .unload und .error) wurden entfernt und Animationen nutzen in der neuen Version der JavaScript-Library nun requestAnimationFrame. Ergebnisse dieser Verbesserung sind, dass Animationen nun weniger CPU-Ressourcen verbrauchen und zudem auch flüssiger ausgeführt werden können. Auch einige jQuery-Custom-Selektoren wurden hinsichtlich Performance verbessert, unter anderem :visible und :hidden. Außerdem sorgt das seit kurzem verfügbare jQuery 3.0 dafür, dass in Szenarien auszugebende Fehlermeldung auch wirklich ein Fehler geworfen und Requests nicht still ignoriert werden. Auch wurden einige jQuery-Custom-Selektoren umfangreichen Performance-Verbesserungen unterzogen, etwa :visible und :hidden.
Auch ein neues Leichtgewicht
Um die Ladezeit von Webseiten, vor allem auf mobilen Geräten, nicht unnütz in die Höhe zu treiben, werden vermehrt leichtgewichtige und damit Ressourcen und Kilobytes einsparende Libraries eingesetzt. jQuery gehörte in der Vergangenheit nicht wirklich dazu. Denn unter anderem kommt jQuery mit einer Reihe von ajax- und effects-Modulen daher, die allerdings nicht unbedingt immer bei jeder Verwendung von jQuery benötigt werden.
Daher kommt auch das neue jQuery 3.0 mit einem neuen Slim-Build auf den Markt, bei dem auf einige ajax- und effects-Module verzichtet wurde. Dadurch ist die Slim-Version gezipped rund 6 KB kleiner als das reguläre jQuery. Sowohl die reguläre Version als auch der Slim-Build stehen über npm sowie im CDN zur Installation und Verwendung bereit.