Es el término de moda en los entornos de programación web: AJAX, consistente en la interacción de las tecnologías JavaScript, HTML/CSS y XML. Aunque en sí misma esta conjunción resulta bastante reciente, las tecnologías implicadas son ya viejas glorias entre los programadores.

El concepto básico en el que se basa esta técnica de programación es bastante simple: cuando se produce un evento en el navegador web que está mostrando el código HTML, en vez de realizar una petición HTTP al servidor, tal y como se suele realizar normalmente, se crea un objeto JavaScript XMLHttpRequest, encargado de realizar dicha petición, la cual devolverá unos datos que serán pasados al manejador del evento que se haya definido.

Sencillo ¿verdad?. La gracia del tema (puesto que hasta ahora lo único que se ha hecho es complicar lo que antes se hacía de forma sencilla) es que la petición HTTP y la ejecución del manejador del evento se realizan en un segundo plano y de forma asíncrona, de forma que el efecto producido por el evento es percibido por el usuario sólo cuando la comunicación con el servidor ya ha terminado. Además, no resulta necesario realizar una recarga del código HTML, ya que es el propio manejador javascript el que edita el árbol DOM de la página web, lo que a efectos de interfaz resulta en una web dinámica que responde a eventos sin repetidas esperas entre cargas de páginas.

Una vez visto en qué consiste esta técnica, es momento de ver algunas de las killer app actuales que utilizan AJAX:

  • Gmail: Sin lugar a dudas es la aplicación que lanzó a la fama AJAX, asombrando con la navegación entre emails sin necesidad de hacer recargas, o del autocompletado a la hora de escribir una dirección de email o de la corrección de sintaxis en la edición.
  • Google Maps: Otra aplicación de Google que permite navegar por el mundo a través de un mapa capaz de superponer fotos satélite.
  • Flickr!: Perteneciente a Yahoo!, ofrece la posibilidad de organizar y etiquetar nuestras fotos preferidas, a través de una interfaz Flash y técnicas AJAX.
  • Meebo: Cliente de mensajería instántanea via web, con capacidad para hacer login en la red de IM que se prefiera. Personalmente, la simulación de ventanas de chat que tiene me parece que es realmente impresionante.
  • Writely: Editor de textos WYSIWYG que permite guardar los documentos en formato word, además de una organización por etiquetas.

Por el momento el punto más flojo de la cuestión es idear qué nuevas funcionalidades pueden sacar un mayor partido a esta reciente técnica, por lo que a pensar se ha dicho ;-).

Y tú, ¿ya has programado una aplicación web utilizando AJAX?