Una aproximación a AJAX
Últimamente no paro de leer una y otra vez la palabra AJAX en todo revista, foro o lista de correo sobre tecnologías web. Más o menos tenía una idea aproximada de lo que era AJAX pero es hoy cuando me he decidido a tratar de entenderlo.
Leyendo el artículo AJAX un nuevo acercamiento a aplicaciones Web del blog Denken Über me he formado una idea de lo que es y he confirmado mis sospechas de qué aplicaciones había por ahi ya hechas con esta tecnología.
¿Qué es AJAX?
AJAX es un acrónimo inglés que significa Asynchronous JavaScript + XML, es decir, no es un producto en sí, sino una técnica que utiliza varias tecnologías, del mismo modo que LAMP es Linux+Apache+MySQL+PHP.
Las tecnologías que se usan son:
- HTML, XHTML y CSS para la presentación de contenidos
- Javascript y DOM para cambiar los contenidos de una página dinámicamente
- XMLHttpRequest, XML, y XSLT para intercambio de datos.
Las gran mayoría de aplicaciones web hechas hasta ahora se basan en un modelo de petición, espera, y respuesta. El usuario pincha un enlace, espera la respuesta con una página en blanco, y luego recibe la página de respuesta. Aunque la página de respuesta sea prácticamente igual a la anterior, se le envía la página completa, lo que alarga la espera.
AJAX resuelve gran parte de estos problemas. Aprovecha los tiempos muertos del usuario para cargar datos en un segundo plano y así reducir la espera. Además, permite que el servidor envíe únicamente los datos de la página que cambian mediante XML (SOAP por ejemplo). No está obligado a enviar toda la página como hasta ahora. Esto acelera la experiencia de usuario ya que tiene que esperar mucho menos.
Esto se logra cargando en el navegador del usuario un motor AJAX escrito en Javascript. El motor normalmente se oculta en un marco o frame invisible. Cualquier acción del usuario es atendida por el motor en el propio navegador, y únicamente se hace una petición al servidor cuando es necesario.
Aplicaciones que usan AJAX
Como me temía, la empresa que está apostando fuerte por esta nueva tecnología es Google. Ya lo ha utilizado en GMail, Google Maps, Orkut, la nueva versión de Google Groups, y Google Suggest, entre otros. Además de Google, lo utiliza también el buscador de Amazon A9.com y Flickr. Por ejemplo, en Google Suggest es utilizado para sugerir palabras de búsqueda mientras se teclea.
Desventajas
En mi opinión, técnicamente es una auténtica maravilla. Solo hay que ver lo rápido que va GMail.
Un receloso del uso intensivo de Javascript, como soy yo, no puede evitar indicar algunas desventajas que también se han señalado en la Wikipedia:
- Disminuye la accesibilidad: No hacía falta ser muy listo para adivinar esto. Al depender de Javascript, la aplicación no puede ser accedida por un navegador que no tenga Javascript. GMail resuelve este problema ofreciendo una versión de la aplicación sin Javascript. De todas formas, hay que tener cuidado con esto. Además, meter el motor en un frame oculto, tampoco ayuda mucho a tener una página accesible.
- Disminuye la usabilidad: Los botones del navegador "Atrás" y "Refrescar" pueden funcionar mal en algunas ocasiones, ya que aunque el contenido cambia dinámicamente de un modo muy rápido, la página sigue siendo la misma. Por ejemplo, a veces, yo tengo que darle dos veces para refrescar la bandeja de entrada de GMail
Conclusión
La verdad es que AJAX es técnicamente sorprendente pero, a menos que se utilice con cuidado, no ayuda mucho a la comunidad que trata de concienciar a los desarrolladores acerca del desarrollo de páginas accesibles. Habrá gente que lo utilice y trate de minimizar los posibles impactos en la usabilidad y accesibilidad, y habrá otros que pasen olímpicamente y degraden aún más sus sitios web.



Gonzalo dijo
Coincido contigo. Los esfuerzos que se están haciendo para dar a conocer la accesibilidad web, pueden enterrarse debajo de esa "nueva tecnología" que es una maravilla y visualmente espectacular.
En el fondo me recuerda vagamente a flash.
Pero de todas formas, no niego su utilidad, a pesar de sus inconvenientes. Hay que tener en cuenta que esta filosofía de desarrollo tiene todavía pocos meses de vida, y se pueden conseguir unos resultados muchos mejores, y más accesibles, de lo que hay ahora.
Esto es la web, je je.
7 Octubre 2005 | 11:39 AM