Na bijna 10 jaar sinds de publicatie van versie 3.0 en 20 jaar na de oprichting van het project is de release van de JavaScript-bibliotheek jQuery 4.0, die volgens de organisatie W3Techs op 70,9% van de 10 miljoen meest bezochte websites wordt gebruikt, een feit. De jQuery-code wordt verspreid onder de MIT-licentie.
De release van jQuery 4.0 bevat wijzigingen die de achterwaartse compatibiliteit verstoren, maar volgens de ontwikkelaars kunnen de meeste gebruikers zonder problemen overstappen naar de nieuwe versie met minimale wijzigingen in hun code. Voor een gemakkelijker migratie kan een speciale plugin worden gebruikt. De achterwaartse compatibiliteitsproblemen zijn gerelateerd aan het verwijderen van verouderde code, het verwijderen van enkele interne niet-gedocumenteerde parameters, het beƫindigen van de ondersteuning voor te complexe gedragingen en het stopzetten van de ondersteuning voor eerder als verouderd verklaarde API's. Het verwijderen van verouderde API's en browsers heeft geleid tot een vermindering van de grootte van het gzip-archief van de bibliotheek met 3 KB (de slim-versie bedraagt nu 19,5 KB en de volledige versie 27,5 KB).
Onder de wijzigingen:
- De ondersteuning voor de browser IE 10 en oudere versies is beƫindigd (de ondersteuning voor IE 11 blijft bestaan, maar zal worden verwijderd in jQuery 5.0), evenals voor andere oudere browsers zoals Edge Legacy, Android Browser en Firefox tot versie 115.
- Ondersteuning voor de Trusted Types API is ingebouwd, die is ontwikkeld om te beschermen tegen manipulaties met de DOM die leiden tot cross-site scripting (DOM XSS), bijvoorbeeld bij onjuiste verwerking van van gebruikers ontvangen gegevens in eval()-blokken of het gebruik van '.innerHTML', wat kan leiden tot het uitvoeren van JavaScript-code in de context van een specifieke pagina. HTML-code kan nu in de vorm van TrustedHTML-objecten aan jQuery-methoden worden doorgegeven.
- De jQuery-code is overgeschakeld naar het gebruik van ESM (ECMAScript Module) JavaScript-modules en kan als module worden geleverd en geĆÆmporteerd.
- Verouderde functies zijn verwijderd: 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. Voor deze functies wordt aanbevolen de standaard JavaScript-functies Array.isArray(), JSON.parse(), String.prototype.trim() en Date.now() te gebruiken.
- Ongedocumenteerde interne methoden van het Array-object ā push, sort en splice ā zijn verwijderd.
- De volgorde van het verwerken van focusveranderingsevents is in overeenstemming gebracht met de W3C-specificatie ā blur, focusout, focus en focusin.
- De grootte van de ingekorte versie (slim), zonder de modules ajax en effects, is verkleind tot 19,5 k door de stopzetting van de levering van Deferred-objecten (het wordt aangeraden om standaard Promises te gebruiken) en Callbacks.
Bron: opennet.ru
