Dopo quasi 10 anni dalla pubblicazione della versione 3.0 e 20 anni dalla creazione del progetto, è stata rilasciata la libreria JavaScript jQuery 4.0, utilizzata dal 70,9% dei 10 milioni di siti più visitati in rete, secondo i dati dell'organizzazione W3Techs. Il codice jQuery è distribuito con licenza MIT.
Il rilascio di jQuery 4.0 contiene modifiche che rompono la retrocompatibilità, ma secondo gli sviluppatori la maggior parte degli utenti potrà passare alla nuova versione senza problemi, con modifiche minime al proprio codice. Per semplificare la migrazione è possibile utilizzare un plugin speciale. Le rotture della retrocompatibilità sono legate alla rimozione di codice obsoleto, all’eliminazione di alcuni parametri interni non documentati, alla cessazione del supporto per alcune funzionalità eccessivamente complesse e alla cessazione del supporto per API precedentemente dichiarate obsolete. La rimozione di API obsolete e browser ha permesso di ridurre la dimensione dell’archivio gzip con la libreria di 3 KB (la versione slim ora occupa 19,5 KB, mentre la versione completa 27,5 KB).
Tra le modifiche:
- È stato interrotto il supporto per il browser IE 10 e versioni precedenti (il supporto IE 11 è mantenuto, ma sarà rimosso in jQuery 5.0), così come per altri browser obsoleti come Edge Legacy, Android Browser e Firefox fino alla versione 115.
- È stato integrato il supporto per l’API Trusted Types, sviluppata per proteggere dalle manipolazioni del DOM che possono portare a Cross-Site Scripting (DOM XSS), ad esempio, durante un’errata gestione dei dati forniti dall'utente nei blocchi eval() o nelle inserzioni con «.innerHTML», che possono consentire l'esecuzione di codice JavaScript nel contesto di una specifica pagina. È ora possibile passare a jQuery codice HTML sotto forma di oggetti TrustedHTML.
- Il codice jQuery è stato convertito per utilizzare i moduli JavaScript ESM (ECMAScript Module) e può essere fornito e importato come modulo.
- Sono state rimosse le funzioni precedentemente contrassegnate come obsolete: jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, jQuery.cssProps e jQuery.fx.interval. Si consiglia di utilizzare al posto di queste funzioni le funzioni JavaScript standard Array.isArray(), JSON.parse(), String.prototype.trim() e Date.now().
- Sono stati rimossi i metodi interni non documentati dell'oggetto Array — push, sort e splice.
- L'ordine di gestione degli eventi di cambio di focus è stato allineato con le specifiche W3C — blur, focusout, focus e focusin.
- La dimensione della versione ridotta (slim), priva di moduli ajax e effects, è stata ridotta a 19,5 k grazie alla cessazione della fornitura di oggetti Deferred (si raccomanda di utilizzare le Promises standard) e i Callbacks.
Fonte: opennet.ru
