Novedades de jQuery 1.9

Como muchos sabrán hace apenas unos días se actualizo el framework JavaScript más popular en su nueva versión 1.9 final. Para los interesados en curiosear más novedades les recomiendo mirar un poco la versión 2.0 que se encuentra en beta y para descargar ahora mismo.

Sin embargo, la versión 1.9 es la nueva versión predeterminada de este popular framework, podríamos llamarla la versión estable. Inclusive todos los CDN se actualizaron, apuntando jquery-latest.js a esta versión. Cosa que hasta cierto punto siempre me dio algo de miedo, principalmente porque muchos métodos pasaron a la historia, sorprendentemente para mi, muchos son de uso bastante común.

lo nuevo de jQuery 1.9

Pero no se preocupen, si tienen un sitio y el mismo perdió muchas funcionalidades gracias a esta actualización, estas pueden ser fácilmente enmendadas con unos breves y simples cambios.

Comencemos por las novedades.

Novedades y mejoras:

  • .css() es multi-property() esto se traduce en que ahora podemos pasarle directamente un array con las propiedades y las mismas se implementaran sin ningún tipo de inconvenientes, facilitando la recursividad de nuestro código.
  • Nuevo método .finish() sirve para completar todas las animaciones de determinado elemento, facilitando la manipulación de los mismos, algo que hasta ahora no era tan sencillo de hacer.
  • Soporte mejorado para CSS3, una mejora muy esperada de cara a mejorar la compatibilidad con los distintos navegadores.
  • Soporte para source maps. Herramienta clave de cara al debugging.

Por lo que pude leer y probar de esta versión de jQuery la idea del equipo fue lograr mayor coherencia, limpiando el core de muchas funciones casi inútiles, o que bien tenían finalidades similares a otras funciones ya implementadas. Honestamente me parece mucho más interesante analizar lo que fue eliminado del framework que lo nuevo.

Métodos que pasaron a la historia

Muchos de estos métodos ya estaban sentenciados a muerte desde la versión 1.7, en esta versión directamente fueron eliminados del core.

  • .toggle
  • jQuery.browser()
  • .live()
  • .die()
  • jQuery.sub()

Propiedades y métodos eliminados

Las siguientes propiedades y métodos nunca fueron documentados, para limpiar el core el equipo de desarrollo decidió eliminarlos directamente:

  • jQuery.deletedIds
  • jQuery.uuid
  • jQuery.attrFn
  • jQuery.clean()
  • jQuery.event.handle()
  • jQuery.offset.bodyOffset()

Métodos que fueron actualizados o renombrados

  • .add() fue mejorado y actualizado.
  • .andSelf() fue renombrada a .addBack()
  • .after(), .before(), y .replaceWith() fue mejorada.
  • .appendTo, .insertBefore, .insertAfter, y .replaceAll. Se corrigieron una serie de bugs.
  • Cambio la forma de interpretar el estado de los Checkbox / radios.
  • jQuery.attr(). Fue modificado. Si lo utilizan no olviden visitar la documentación oficial para lograr reescribir su utilización de la manera correcta. Como consejo les recomiendo leer acerca del correcto uso de .prop(). que si bien no es un total reemplazo en algunos escenarios corresponde utilizarlo en lugar de .attr().

Los eventos AJAX, los globales, pueden ser anexados directamente al documento.

$("#status").ajaxStart(function(){ $(this).text("Ajax started"); });

Cambio por esto:

$(document).ajaxStart(function(){ $("#status").text("Ajax started"); });

El peso de jQuery: 1.8.3 vs 1.9

Este es un tema que siempre me preocupa, en esta actualización la diferencia es mínima.

jQuery simplificado y comprimido mediante gzip:
 + La versión 1.8.3 ~ 33,471 bytes vs la versión 1.9 ~ 32,980 bytes.

¿Cómo utilizar jQuery 1.9 manteniendo los métodos eliminados?

Probablemente los nuevos plugins jQuery utilicen la versión 1.9. Sin embargo puede ocurrir que nuestro sitio todavía necesite algunos métodos que fueron eliminados.

Para nuestra suerte la gente de jQuery pensó en esta posibilidad, para ayudarnos a sobrevivir a la migración desarrollo un plugin que nos permite mantener los métodos eliminados y sin embargo utilizar la versión nueva.

Para lograr esto, simplemente debemos insertar en nuestro proyecto:

<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.0.0.js"></script>

Si no desean utilizar el plugin desde un CDN pueden descargarlo directamente desde su apartado en GitHub (jQuery Migrate).

En conclusión buenas noticias para los programadores que utilizamos jQuery. Si bien los cambios no fueron muy grandes el framework se vuelve más homogéneo y se corrigieron varios errores relacionados a la coherencia de las distintas funciones.

Más información en blog de jQuery

Categorizado en: