Also available in English

Inf@Vis!

La revista digital de InfoVis.net

Ajax
por Juan C. D√ľrsteler [mensaje nļ 177]

Con este nombre se conoce un conjunto de tecnologías web que prometen hacer avanzar su experiencia de uso hacia un entorno más interactivo y cercano a la inmediatez del trabajo en la metáfora del escritorio, a la que tan acostumbrados estamos, pero con todas las ventajas de Internet.

Cuando nos conectamos a un sitio web, sea estático o dinámico, estamos acostumbrados a movernos a través de hiperenlaces que, una vez pulsados, cancelan la página actual y nos muestran, tras un breve o no tan breve lapso, una nueva página. A diferencia de lo que ocurre en nuestro ordenador, en el que las aplicaciones del escritorio responden rápidamente una vez cargadas y podemos interactuar de una forma fluida, las páginas web requieren la recarga de una página nueva para la mayoría de operaciones, por ejemplo zooms o enlaces a nuevas páginas.

Java y JavaScript nacieron como tecnologías que permiten, una vez descargado el programa en el ordenador del usuario, la interacción en tiempo real sin tener que hacer continuas peticiones al servidor web. Ajax va un paso más adelante combinando diferentes tecnologías para conseguir una mayor agilidad en la interacción. 

Ajax es el acr√≥nimo de Asynchronous JavaScript and XML¬†al parecer acu√Īado por la gente de Adaptive Path que est√°n promocionando activamente esta nueva aproximaci√≥n a la interacci√≥n en la web. B√°sicamente Ajax utiliza¬†¬†

  • HTML o XHTML y CSS (Hojas de Estilo en Cascada),¬† como la mayor√≠a de las aplicaciones web.

  • Document Object Model (DOM) y Javascript con el objetivo de proporcionar interactividad y facilitar la representaci√≥n din√°mica de datos.

    DOM es un estándar del W3C (World Wide Web Consortium) que surgió para asegurar la compatibilidad entre fabricantes a la hora de realizar programas en JavaScript que se comportaran de forma homogénea y predecible, sin importar en qué navegador se ejecutasen. Concebido para evitar guerras como la que hubo entre Netscape y Microsoft cada uno creando extensiones no estándares, no ha podido evitar que Microsoft, ya estándar de facto, haya creado sus propias extensiones a DOM (!).

  • XML y XLST para proporcionar el intercambio as√≠ncrono de datos con el servidor web.¬†

El modelo operativo de Ajax transforma la forma habitual de procesar los datos en la web. Veamos cómo.

Ajax_es.gif (23259 bytes)

Aplicación web tradicional

En una aplicación normal el navegador interacciona, en el ordenador del usuario, con éste. Cuando se inicia la sesión, se carga una página HTML enviada por el servidor a petición del navegador. Cuando se pulsa un hiperenlace, se rellena un formulario, o se realiza una consulta, el navegador construye una petición http que se envía al servidor de la web en cuestión, localizado en cualquier parte del mundo.

Con esta información el servidor realiza la operación que se ha pedido, quizá consulta una base de datos, recupera un gráfico o realiza un cálculo, y construye una nueva página usando posiblemente CSS y HTML  o simplemente envía el contenido de una preexistente al navegador  que, a su vez la presenta, borrando la página anterior. En muchos casos la nueva página es muy similar a la precedente, a lo mejor con un gráfico más ampliado o una información adicional.

El problema de este esquema, bien conocido por todos, es que mientras el servidor está atareado procesando la petición (entre muchas otras) nosotros estamos esperando pacientemente a que nos llegue la nueva página, lo que no siempre ocurre rápidamente. Todo sucede en el lado del servidor mientras que en nuestro lado el navegador sólo espera.

Aplicación Ajax

Como Jesse James Garrett explica en su muy interesante art√≠culo de referencia sobre Ajax (vease la traducci√≥n al espa√Īol) en este caso¬†el esquema cambia de la siguiente forma:

Ajax introduce un intermediario entre la interacción con el usuario y el servidor que se denomina "Motor Ajax". La página que recibe el navegador al inicio de la sesión, en vez de contener una página HTML habitual, lo que contiene es un motor Ajax enviado por el servidor, escrito en JavaScript y habitualmente camuflado en un marco (frame) invisible.

El motor Ajax lo que hace es proporcionar un marco flexible e independiente del servidor que realiza toda la interacción con el usuario y que puede contener herramientas de cálculo, sistemas sofisticados de producción e interacción con gráficos o cualquier cosa que se pueda programar en JavaScript.

De esta forma la interacción se desliga del servidor (se hace asíncrona, de ahí la A de Ajax) y mientras interaccionamos con la aplicación, el navegador se puede estar comunicando con el servidor sin hacernos esperar a que acabe la transmisión de datos.

Ello es posible porque cualquier interacción se hace contra el motor Ajax y no contra el servidor. Una vez se han cargado los datos se puede interaccionar con ellos mediante los programas JavaScript descargados. Todo aquello que no esté cargado y se necesite del servidor se puede pedir usando XML, en segundo plano, sin borrar la página ni parar la interacción del usuario.

 Habitualmente se considera que la primera aplicación Ajax fue la que contiene el cliente web de Microsoft Exchange Server. Sin embargo quien está haciendo un uso profuso y sistemático de este modelo de interacción es nuestro viejo amigo Google, que lo incorpora (me atrevo a decir que brillantemente) en aplicaciones como

  • Google Groups, la herramienta de trabajo en grupo

  • Google Suggest, a medida que entras las letras de los t√©rminos de b√ļsqueda te va sugiriendo posibilidades

  • Google Maps una herramienta interactiva de visualizaci√≥n de mapas

  • Gmail el sistema de correo electr√≥nico gratuito de Google.

Pero no sólo Google se está aplicando en la utilización de Ajax, otras empresas están introduciendo gradualmente este sistema. Entre ellas se cuenta, como no, Amazon con su buscador A9 o Flickr, un album de fotos online, entre otras muchas. Véase la wikipedia sobre este término para una lista más extensa de ellas.

Un interesante ejemplo es Writely  un editor de textos online que se puede utilizar desde cualquier lugar del mundo (como cualquier aplicación web) pero cuya interacción es tan fluida y familiar como la de cualquier procesqador de textos.

Ajax es una interesante propuesta que acerca el rígido y poco interactivo mundo de la web al más flexible y amigable del escritorio. Sin ser una propuesta definitiva, proporciona un avance metodológico importante que empieza a permitir la unión de lo mejor de dos mundos: la ubicuidad y sencillez de la web y la interactividad del escritorio.

Enlaces de este artŪculo:

http://www.adaptivepath.com   Website de Adaptive Path
http://www.adaptivepath.com/team/jjg.php   Pagina personal de Jesse James Garrett
http://www.adaptivepath.com/publications/essays/archives/000385.php   Articulo clave de Jesse James Garrett sobre Ajax
http://www.uberbin.net/archivos/internet/ajax-un-nuevo-acercamiento-a-aplicaciones-web.php   Traducci√≥n al espa√Īol del articulo clave sobre Ajax
http://groups.google.com/   Google Groups
http://www.google.com/webhp?complete=1&hl=en   Google Suggest
http://maps.google.com/   Google Maps
http://www.gmail.com/   Google Electronic Mail
http://www.a9.com/   El buscador A9 de Amazon.com
http://www.flickr.com/   Flickr.com
http://es.wikipedia.org/wiki/AJAX   Entrada sobre Ajax en la Wikipedia
http://www.writely.com/   Writely, un procesador de textos basado en Ajax
© Copyright InfoVis.net 2000-2018