Gairebé 10 anys després del llançament de la branca 3.0 i 20 anys després de la fundació del projecte, s'ha publicat la biblioteca JavaScript jQuery 4.0. Segons W3Techs, l'utilitzen el 70.9% dels 10 milions de llocs web més visitats a la web. El codi jQuery es distribueix sota la llicència MIT.
El llançament de jQuery 4.0 conté canvis que trenquen la compatibilitat amb versions anteriors, però els desenvolupadors asseguren a la majoria dels usuaris que poden migrar a la nova versió sense problemes amb canvis mínims al seu codi. Es pot utilitzar un complement dedicat per simplificar la migració. Les interrupcions de la compatibilitat amb versions anteriors inclouen l'eliminació de codi obsolet, l'eliminació d'alguns paràmetres interns no documentats, la desaprovació d'alguns comportaments excessivament complexos i la desaprovació d'API anteriorment obsoletes. L'eliminació d'API i navegadors obsolets ha reduït la mida de l'arxiu gzip que conté la biblioteca en 3 KB (la versió slim ara ocupa 19.5 KB i la versió completa 27.5 KB).
Entre els canvis:
- S'ha deixat de donar suport a l'IE 10 i als navegadors anteriors (es manté la compatibilitat amb l'IE 11, però es suprimirà a Query 5.0), així com a altres navegadors més antics com ara Edge Legacy. Android Navegador i Firefox fins a la branca 115.
- S'ha integrat la compatibilitat amb l'API Trusted Types. Aquesta API està dissenyada per protegir contra manipulacions DOM que condueixen a scripts entre llocs (DOM XSS), com ara el processament incorrecte de dades proporcionades per l'usuari en blocs eval() o insercions ".innerHTML", que poden conduir a l'execució de codi JavaScript en el context d'una pàgina específica. Els mètodes jQuery ara poden acceptar codi HTML en forma d'objectes TrustedHTML.
- El codi jQuery s'ha convertit per utilitzar mòduls JavaScript ESM (ECMAScript Module) i es pot enviar i importar com a mòdul.
- Les funcions següents s'han eliminat i anteriorment estaven marcades com a obsoletes: jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, jQuery.cssProps i jQuery.fx.interval. Es recomana utilitzar les funcions estàndard de JavaScript Array.isArray(), JSON.parse(), String.prototype.trim() i Date.now() en lloc d'aquestes funcions.
- S'han eliminat els mètodes interns no documentats de l'objecte Array: push, sort i splice.
- L'ordre de gestió dels esdeveniments de canvi d'enfocament s'ha adaptat a l'especificació del W3C: blur, focusout, focus i focusin.
- La mida de la versió slim, que no conté els mòduls ajax i efectes, s'ha reduït a 19.5k aturant el lliurament d'objectes Deferred (es recomana utilitzar les Promises estàndard) i Callbacks.
Font: opennet.ru
