jQuery 4.0 beschikbaar: eerste grote release in 10 jaar

1 uur geleden 2

Twintig jaar na de introductie brengt het jQuery-team versie 4.0.0 uit. De eerste grote release in bijna 10 jaar brengt belangrijke verbeteringen, moderniseringen en breaking changes. Veel gebruikers kunnen upgraden met minimale aanpassingen aan hun code.

Versie 4.0.0 moet een nieuwe fase voor de JavaScript-library vormen. De release volgt op een lange ontwikkelcyclus met verschillende pre-releases. De breaking changes zijn wijzigingen die het team al jaren wilde doorvoeren, maar niet kon implementeren in patch- of minor releases. Legacy-code is opgeschoond, eerder gedepreceerde API’s zijn verwijderd en ondersteuning voor sommige “magische” gedragingen die te complex waren is geschrapt. Een upgrade guide en jQuery Migrate-plugin staan klaar om de transitie te ondersteunen.

Ondersteuning voor oude browsers verdwijnt

Versie 4.0 laat ondersteuning voor Internet Explorer 10 en ouder vallen. IE 11 blijft voorlopig nog ondersteund, maar zal verdwijnen in jQuery 5.0. Het team kiest voor een gefaseerde aanpak. Ook Edge Legacy, iOS-versies ouder dan de laatste drie, Firefox-versies ouder dan de laatste twee (behalve Firefox ESR) en Android Browser worden niet langer ondersteund.

De library voegt wel ondersteuning toe voor Trusted Types en Content Security Policy. HTML verpakt in TrustedHTML kan nu als input dienen voor jQuery-manipulatiemethoden zonder de require-trusted-types-for CSP-directive te schenden. De meeste asynchrone scriptverzoeken gebruiken nu <script> tags in plaats van inline scripts om CSP-fouten te vermijden.

Migratie naar ES-modules en verwijderde functies

De jQuery-source op de main branch is gemigreerd van AMD naar ES-modules. Het maakt de library compatibel met moderne build tools, ontwikkelworkflows en browsers. Rollup vervangt RequireJS als build tool en alle tests draaien separaat op de ES-modules.

Verwijderde functies zijn onder meer jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, jQuery.cssProps en jQuery.fx.interval. Native equivalenten zoals Array.isArray(), JSON.parse(), String.prototype.trim() en Date.now() kunnen deze vervangen.

Ook de interne methodes push, sort en splice zijn verwijderd van het jQuery-prototype. Deze waren altijd bedoeld voor intern gebruik. De combinatie van verwijderde API’s en IE-code resulteerde in een groottereductie van ruim 3 kilobyte gzipped.

De release is beschikbaar via de jQuery CDN en npm. Derde-partij CDN’s hebben enige tijd nodig om de bestanden beschikbaar te maken.

Tip: Kritiek lek in JavaScript-bibliotheek expr-eval blootgelegd

Lees het hele artikel