Después de casi 10 años desde la publicación de la versión 3.0 y 20 años después de la fundación del proyecto, se lanzó la biblioteca JavaScript jQuery 4.0, utilizada, según la organización W3Techs, en el 70.9% de los 10 millones de sitios más visitados de la red. El código de jQuery se distribuye bajo la licencia MIT.
El lanzamiento de jQuery 4.0 contiene cambios que rompen la compatibilidad retroactiva, pero según los desarrolladores, la mayoría de los usuarios podrán migrar a la nueva versión con mínimos cambios en su código. Para facilitar la migración, se puede utilizar un plugin especial. Las violaciones de la compatibilidad retroactiva están relacionadas con la eliminación de código obsoleto, la eliminación de algunos parámetros internos no documentados, el cese del soporte para ciertos comportamientos innecesariamente complejos y la eliminación del soporte para API previamente declarados obsoletos. La eliminación de API y navegadores obsoletos ha permitido reducir el tamaño del archivo comprimido gzip de la biblioteca en 3 KB (la versión slim ahora ocupa 19.5 KB y la completa 27.5 KB).
Entre los cambios:
- Se ha dejado de soportar el navegador IE 10 y versiones más antiguas (el soporte para IE 11 se mantiene, pero se eliminará en jQuery 5.0), así como otros navegadores antiguos como Edge Legacy, Android Browser y Firefox hasta la versión 115.
- Se ha incorporado soporte para el API Trusted Types, que se desarrolla para proteger contra manipulaciones del DOM que conducen a scripts de sitios cruzados (DOM XSS), por ejemplo, al procesar incorrectamente los datos recibidos del usuario en bloques eval() o inserciones «.innerHTML», lo que puede llevar a la ejecución de código JavaScript en el contexto de una página específica. Ahora se puede pasar código HTML a los métodos de jQuery en forma de objetos TrustedHTML.
- El código de jQuery ha sido adaptado para utilizar módulos de JavaScript ESM (Módulo ECMAScript) y puede ser entregado e importado como un módulo.
- Se han eliminado funciones que anteriormente estaban marcadas como obsoletas: jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, jQuery.cssProps y jQuery.fx.interval. En lugar de estas funciones, se recomienda usar las funciones nativas de JavaScript Array.isArray(), JSON.parse(), String.prototype.trim() y Date.now().
- Se han eliminado métodos internos no documentados del objeto Array — push, sort y splice.
- El orden de procesamiento de los eventos de cambio de foco se ha alineado con la especificación W3C — blur, focusout, focus y focusin.
- El tamaño de la versión recortada (slim), que no incluye módulos ajax y effects, se reduce a 19.5k debido a la interrupción del suministro de objetos Deferred (se recomienda utilizar Promises estándar) y Callbacks.
Fuente: opennet.ru
