Soporte para navegadores en jQuery 1.12 y siguientes.

Microsoft está acabando el soporte para Windows XP este mes, le estamos dando a la comunidad jQuery un aviso muy temprano sobre los cambios al soporte de navegadores.

Primero que nada, ¡no se asusten! Realmente nada está cambiando con respecto a los navegadores que pueden ejecutar jQuery por al menos 6 meses. Nuestra meta es permitirle a todos en la comunidad de desarrollo web conocer lo que el equipo jQuery intenta hacer el próximo año, para que puedan hacer planes.

¿Qué está cambiando?

No hay fechas firmes pero planeamos lanzar las versiones de núcleo de jQuery 1.12 y 2.2 este año. jQuery 1.13/2.3 serán lanzados en algún momento del 2015.

jQuery 1.12: Este será el último lanzamiento con soporte de Internet Explorer 6 y 7. Desde hoy no habrá más peticiones de características o corrección de errores. Solamente regresiones serias para estos navegadores serán corregidas en lanzamientos de parches (por ejemplo 1.12.1). jQuery 1.13 soporta IE8 como mínimo.

Ambos jQuery 1.12 y 2.2: Éstos serán los últimos lanzamientos que soportarán Opera 12.1x y Safari 5.1. Desde hoy no habrá más peticiones de características o corrección de errores. Solamente regresiones serias para estos navegadores serán corregidas en lanzamientos de parches (por ejemplo 1.12.1, 2.2.1).

Ambos jQuery 1.13 y 2.3: Se quitarán parches y soluciones que son específicos para poder funcionar en navegadores que ya no soportamos, para poder simplificar el  código base.

¿Qué necesitas hacer? Si tus proyecots utilizan un administrador de paquetes que jala la última versión de jQuery, ten en mente que 1.12 a 1.13 o 2.2 a 2.3 reducirá el soporte de navegadores. Podrías querer permanecer en la versión 1.12 o menor si el soporte para navegadores antiguos es requerido. Mira las instrucciones de tu administrador de paquetes para detalles de cómo hacer eso.

El significado de “Soporte”.

Definir lo que el “soporte” significa es más difícil de lo que pudieras pensar. Bajo la premisa que “código sin probar es código roto”, el equipo del núcleo de jQuery prefiere decir que nosotros soportamos de manera completa un navegador si el proyecto regularmente ejecuta pruebas unitarias contra ese navegador. Las pruebas unitarias aseguran que cada API devuelve un conjunto de resultados de manera consistente en todos los navegadores.

Aún cuando soportamos un navegador, pueden haber errores que no se pueden resolver de manera razonable. Internet Explorer 6 hasta 11 disparan eventos para focus y blur de manera asíncrona y el código requerido para hacerlos parecer síncronos sería considerable. Safari e iOS no soportan el evento “onbeforeunload” el cual es difícil de corregir. Hasta el mes pasado Firefox no respetaba overflow: hidden en un elemento fieldset. Nosotros tratamos de trabajar con los vendedores de navegadores para hacer que estos errores sean corregidos.

En navegadores que oficialmente no soportamos, trabajamos duro para eliminar los “killer bugs” tales como errores de script durante la inicialización que pueden hacer la página totalmente inutilizable.

Todo se resume a esto: Podemos asegurar la calidad del soporte para los navegadores y ambientes que constantemente les hacemos pruebas unitarias.  Trataremos de dar un nivel razonable de soporte para navegadores en cualquier ambiente popular. La prioridad más alta es asegurar que el navegador no arroje errores. De menor prioridad será asegurar que navegadores viejos o raros produzcan los mismos resultados exactos de los navegadores modernos.

¿Quién utiliza navegadores viejos ahora?

Cuando mires las estadísticas de navegadores, no mires en dónde están ahora. Piensa en dónde estarán en el 2015. Nosotros pensamos que todos estos navegadores tendrán muy poca participación de mercado para ese tiempo. Muchos de esos navegadores ya están allí y tendrán menos participación de mercado para cuando jQuery finalmente les quite el soporte.

En realidad estas estadísticas de Internet no importan mucho. Lo que realmente importa es si tus visitantes o usuarios de tu aplicación web están corriendo un navegador en particular. Esto es algo que sólo tú puedes responder. La decisión de actualizar a una nueva versión de jQuery está siempre en tus manos como desarrollador.

El mito de la consistencia de navegadores.

Hoy y mucho tiempo en el futuro, jQuery contendrá docenas de correcciones específicas de algún navegador para normalizar el comportamiento. En este punto, el navegador más problemático para jQuery 2.x es Android 2.3. Esa versión tiene un significante 20% de la base instalada de Android y todavía está siendo lanzada en nuevo productos móviles. Muchas características JavaScript como element.classList no son soportadas allí, y es uno de los últimos navegadores en requerir el prefijo -webkit- para propiedades estandarizadas CSS.

Los proyectos de jQuery se tratan de hacerle la vida fácil al desarrollador, continuaremos soportando los arreglos que sean necesarios para suavizar las inconsistencias de los navegadores populares. Conforme la participación de mercado de navegadores específicos llegue a cero, tomaremos la oportunidad de quitar esos parches y quitar el soporte para ellos para poder simplificar el código base. Eso hará que las páginas que utilicen jQuery se ejecuten un poco más rápido.

Extraído del Official jQuery Blog por Dave Methvin.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s