Ajax: desarrollos web dinámicos y veloces

No muchos años atrás, las aplicaciones web se ejecutaban sobre un sistema de comunicación sincrónico entre el cliente y el servidor: en cualquier caso, el primero solicitaba un servicio y quedaba a la espera de que el segundo respondiera a su petición. Toda modificación sobre una página web (por ejemplo, el reordenamiento de una lista de productos) debía ser pedida al servidor y luego devuelta por éste, volviendo a cargar la página (ahora modificada) y consumiendo un tiempo excesivo para operaciones que podían ser bastante sencillas.

Ajax (Asynchronous JavaScript And XML) llegó para resolver este problema. Se trata de un conjunto de tecnologías para la creación de páginas dinámicas que funcionen de manera asincrónica: las páginas pueden modificarse parcialmente desde el lado del cliente, evitando que sea necesario volver a cargarlas y ahorrando tiempo y ancho de banda.

El término fue creado en 2005 por Jesse James Garrett, quien se interesó por la velocidad con la que funcionaban algunos servicios de Google. Por ejemplo, al tipear un término en el buscador, obtenemos sugerencias que cambian casi automáticamente a medida que ingresamos caracteres; en Maps, si hacemos zoom con el mouse sobre algún lugar particular, ampliamos la imagen instantáneamente. En ninguno de los dos casos es necesario volver a cargar la página para que ésta se modifique dinámicamente. Según Garrett, Ajax no es una tecnología, sino varias que por separado ofrecen grandes beneficios y pueden unirse de formas nuevas y poderosas:

  • XHTML y CSS para la presentación visual de la página.
  • Document Object Model para mostrar datos e interactuar con ellos dinámicamente.
  • XML para el intercambio de datos, y XSLT para su manipulación.
  • XMLHttpRequest para la obtención asincrónica de datos.
  • JavaScript para unir las demás tecnologías.

El uso conjunto de estas tecnologías ayuda a crear páginas que ofrezcan grandes funcionalidades con escasa participación del servidor, reduciendo los tiempos de navegación y garantizando una mejor experiencia de usuario.