Alzado.org

AJAX o el fin del clic y espera

A medida que los servicios van utilizando la www como soporte, el sistema operativo es sustituido por el navegador que se convierte en un cliente de acceso universal ya no únicamente a contenidos (o páginas web) sino a todo tipo de servicios transaccionales. Algo que convierte cualquier software en omnipresente e independiente del equipo desde el que se accede.

Simplemente se apunta a una URL con un navegador y se utilizan todos los servicios. Buscando ahorro de costes de mantenimiento, es normal que los departamentos de tecnología migren su software a plataforma web. Ello evita las tediosas instalaciones de programas, su posterior mantenimiento y control de versiones de los sistemas cliente servidor tradicionales.

A diferencia de un sitio web basado en documentos HTML, una aplicación web no tiene páginas: no se navega, no se indexa. Por tanto, no tiene sentido el uso de controles de navegador como â??Atrásâ? o â??Adelanteâ?. Ello hace de la creación de aplicaciones web un reto en diseño de interacción y usabilidad.

A nivel de usabilidad, uno de los grandes problemas de utilizar un navegador como plataforma de trabajo es el diseño del protocolo http en que se basan los servicios web. �ste se basa en un modelo de petición-respuesta. Este modelo, se manifiesta en las recargas de página cada vez que se pulsa un enlace o un botón (el paradigma click and wait). En aplicaciones de uso intensivo, este modo de trabajo resulta tedioso para el usuario.

Mejorando la interacción se mejora la experiencia de uso

En la red una experiencia de uso satisfactoria es clave para el éxito de un proyecto. A mayor satisfacción, mayor uso, por tanto más posibilidades de cumplir con nuestros objetivos (más ventas, ahorro de costes…).

Para mejorar la experiencia de uso en la web, se han planteado nuevas soluciones tecnológicas que doten de una mayor interactividad y velocidad de respuesta a los contenidos servidos a través de un navegador, bien sean textuales, audiovisuales o formularios haciendo más sencillo el trabajo de un usuario y mejorar el tiempo necesario para realizar una tarea (una consulta, una compra, una transacción…).

Una técnica rudimentaria pero efectiva ha sido el uso de IFRAMES en pantallas de aplicaciones acudiendo a un modelo de recarga parcial del área de trabajo que ocultara al usuario la existencia de un refresco de página.

El lanzamiento por Macromedia de su concepto RIA o Rich Internet Applications y Flex basados en un uso â??útilâ? de Flash facilita crear aplicaciones muy ricas gráficamente que además permiten la incorporación de contenidos multimedia (vídeo y audio).

Por otro lado, AJAX, término acuñado por Jesse James Garret, es una combinación de técnicas que emplea estándares como HTML, XHTML y CSS como presentación de la información, el DOM (Document Object Model) y JavaScript que permite interactuar dinámicamente con la información y apoyado sobre el protocolo XMLHttpRequest.

Estas técnicas combinadas evitan esa molesta recarga de páginas mejorando la experiencia del usuario en aplicaciones web.

AJAX: perspectiva de usuario

AJAX permite simular a la perfección el comportamiento de aplicaciones de escritorio en la web. Fue diseñado a finales de los 90 por Microsoft como una API que daba soporte a su servicio de Outlook Web Access (Outlook a través de navegador).

AJAX supone una nueva era en el diseño de aplicaciones web aproximándolas desde una perspectiva de usuario a la experiencia de uso de aplicaciones de escritorio.

Un aplaudido ejemplo de AJAX es el servicio de Webmail Oddpost, del cual soy usuario muy satisfecho. Fácil y extremadamente rápido de usar no tiene nada que envidiar a software residente en el propio equipo como Outlook de Microsoft.

Otro ejemplo es Flickr, sitio que permite compartir álbumes de fotografías que basa su presentación en Flash y en AJAX.

Oddpost y Flickr han sido comprados por Yahoo!

Usando AJAX: algunas cuestiones… ¿delicadas?

Accesibilidad
Existe el riesgo de que algunos usuarios no puedan usar aplicaciones AJAX al estar basado en Javascript. Aquellos dispositivos que no soportan Javascript o que lo tienen desactivado.

La solución es diseñar servicios de manera que se â??degraden graciosamenteâ? y puedan ser usados sin Javascript acudiendo al modelo tradicional de refresco de páginas.

Usabilidad
Uno de los principios del diseño de interacción es la retroalimentación al usuario a través del interfaz. A un usuario acostumbrado a un modelo tradicional de interacción web, el refresco de página le informa que el sistema ha recibido su petición.

Con AJAX conviene replantear el modelo de respuesta de la pantalla para que el usuario perciba que el sistema le está atendiendo.

El uso del botón â??Atrásâ? del navegador. Equivalente al deshacer. Gran parte de los usuarios acuden instintivamente a él cuando se equivocan. En aplicaciones basadas en Javascript existe un riesgo de malfuncionamiento, ya que el botón â??Atrásâ? funciona para peticiones de páginas diferentes.

Tiempo de espera en cargas de página. Una tentación para muchos desarrolladores es incluir grandes â??bolas de códigoâ? Javascript (personalmente he visto componentes de más de 1,5 MBS de Javascript).

Hay que ser prudentes y evitar caer en esta tentación ya que implica no sólo un consumo de ancho de banda importante y su correspondiente tiempo de carga, sino tiempo de procesador (el navegador se queda â??tontoâ? y arriesga quedarse colgado al tener que tratar gran cantidad de instrucciones)

Acceso a información mediante indexación y marcado de favoritos (Bookmarks). Con AJAX hay que ser muy cautos al diseñar flujos de pantallas ya que se puede caer en el error de ocultar información que puede ser idónea como documento (para consultar, buscar, navegar…).

AJAX en funcionamiento

La mejor manera de entender el funcionamiento de AJAX es experimentando con él.

Aquí van algunos ejemplos:

A9, buscador de Amazon
Servicio Google Maps, de mapas.
Flickr. Álbumes de fotos online.
Oddpost, servicio avanzado de webmail de Yahoo!
Basecamp, servicio de gestión de proyectos diseñado por 37 signals sobre plataforma Rails.

Salir de la versión móvil