Majdnem 10 évvel a 3.0 verzió közzététele után, és 20 évvel a projekt megalapítása után megjelent a jQuery 4.0 JavaScript könyvtár, amely a W3Techs adatai szerint az internet leglátogatottabb 10 millió weboldala közül 70,9%-ban használatos. A jQuery kód MIT licenc alatt terjesztett.
A jQuery 4.0 kiadása hátrameneti kompatibilitást sértő változásokat tartalmaz, de a fejlesztők ígérete szerint a legtöbb felhasználó zökkenőmentesen tud majd áttérni az új verzióra minimális kódbeli változtatásokkal. A migráció megkönnyítése érdekében speciális plugint lehet használni. A hátrameneti kompatibilitási problémák a elavult kód eltávolításával, néhány nem dokumentált paraméter eltávolításával, a túl bonyolult viselkedés megszüntetésével és a korábban elavultként bejelentett API-k támogatásának leállításával kapcsolatosak. Az elavult API-k és böngészők eltávolítása 3 KB-al csökkentette a könyvtár gzip archívumának méretét (a slim verzió most 19,5 KB, a teljes verzió pedig 27,5 KB).
A változtatások közül:
- Az IE 10 és régebbi böngészők támogatása leállt (az IE 11 támogatása megmarad, de a Query 5.0-ban eltávolítják), valamint más régi böngészőké, például az Edge Legacy, az Android Browser és a Firefox 115-ig.
- Beépítették az API Trusted Types támogatását, amelyet a DOM manipulációk védelmére fejlesztettek ki, amelyek keresztoldali szkriptnyújtás (DOM XSS) okozhatnak, például a felhasználótól kapott adatok nem megfelelő kezelése miatt az eval() vagy az '.innerHTML' beillesztések során, ami JavaScript kód végrehajtásához vezethet egy adott oldal kontextusában. A jQuery módszerei most HTML kódot kaphatnak TrustedHTML objektumok formájában.
- A jQuery kódját az ESM (ECMAScript Module) JavaScript modulok használatára alakították, és modulokként szállítható és importálható.
- Eltávolították a korábban elavultnak jelölt funkciókat: jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, jQuery.cssProps és jQuery.fx.interval. E helyett a beépített JavaScript funkciók, például Array.isArray(), JSON.parse(), String.prototype.trim() és Date.now() használatát ajánlják.
- Eltávolították a dokumentálatlan belső Array objektum metódusokat - push, sort és splice.
- Az események fókuszváltási sorrendje összhangba került a W3C specifikációval - blur, focusout, focus és focusin.
- A slim version that does not include ajax and effects modules has been reduced to 19.5k by discontinuing the supply of Deferred objects (it is recommended to use standard Promises) and Callbacks.
Forrás: opennet.ru
