martes, abril 25, 2006

Primer acercamiento a AJAX

Desde que escuché acerca de AJAX, me interesé en el tema y decidí investigar para aprender, utilizar, y poder implementar la tecnología en alguno de los proyectos en los que trabajo, lo cual intenté hacer hace un par de meses, pero la sección en que iba a implementarlo exigía más investigación para realizar las modificaciones pertinentes, lo cual no pude llevar a cabo por cuestiones de tiempo (clásica). No es hasta ahora que he podido implementar AJAX en uno de los proyectos en los que hemos estado trabajando en la oficina desde hace un buen rato, dicha implementación en realidad no fue nada complicada una vez encontré el tutorial adecuado, y en realidad todo está quedando de perlas gracias a la dedicación y paciencia del equipo de trabajo; es por esto que me ha parecido productivo documentar el logro, y compartir conceptualmente lo que he aprendido para que así puedan ponerlo en práctica.
AJAX es un acrónimo en inglés que para algunos quiere decir JavaScript y XML Asíncronos (Asynchronous JavaScript And XML) mientras que para otros es JavaScript y XML Avanzado (Advanced Javascripting And XML)... no obstante, es una técnica de desarrollo web utilizada para crear aplicaciones interactivas...
En esta técnica de desarrollo se ven involucradas ciertas tecnologías que podríamos agrupar en tres capas:

  • Capa de Presentación: utlizando HTML y CSS

  • Capa de Interacción dinámica con los datos: utlizando Javascript y el Modelo de Objeto de Documento (DOM, de sus siglas en inglés), y la

  • Capa de Manipulación de datos: utlizando XML y XSLT, para intercambiar y manipular datos de manera desincronizada con un servidor web (aunque las aplicaciones AJAX pueden usar otro tipo de tecnologías, incluyendo texto plano, para realizar esta labor). El objeto XMLHttpRequest es aquél que interactúa entre el navegador y el servidor web, generalmente con el envío de datos en formato XML (aunque se pueden aplicar otros formatos)
A manera de cultura general, hay que mencionar que Jesse James Garrett es considerado como el individuo que acuñó el concepto, lo cual se puede ver en este artículo.

A grandes rasgos AJAX, al igual que DHTML o LAMP (por ejemplo), no constituye una tecnología en sí, sino varias de éstas trabajando en conjunto.

Cómo funciona?
En las aplicaciones web tradicionales los usuarios interactúan mediante formularios, que al enviarse, realizan una petición al servidor web. El servidor se comporta según lo enviado en el formulario y contesta enviando una nueva página web. Se desperdicia mucho ancho de banda, ya que gran parte del HTML enviado en la segunda página web, ya estaba presente en la primera. Además, de esta manera no es posible crear aplicaciones con un grado de interacción similar al de las aplicaciones habituales.

En aplicaciones AJAX se pueden enviar peticiones al servidor web para obtener únicamente la información necesaria, empleando SOAP o algún otro lenguaje para servicios web basado en XML, y usando JavaScript en el cliente para procesar la respuesta del servidor web. Esto redunda en una mayor interacción gracias a la reducción de información intercambiada entre servidor y clientes ya que parte del proceso de la información lo hace el propio cliente, liberando al servidor de ese trabajo. La contrapartida es que la descarga inicial de la página es más lenta al tenerse que bajar todo el código JavaScript.

En dónde se recomienda usar AJAX?
La lista algunos la resumen a los siguientes elementos, aún así, recordemos que la creatividad es una de las herramientas a las que nos debemos aferrar al momento de trabajar...

  • Formularios: para lo que es interacción en el manejo de éste, mostrar información al seleccionar un elemento de un menú, autoguardado ...

  • Rápida comunicación entre usuarios

  • Envío de votaciones, cajas Si/No, calificaciones ...

  • Auto-relleno de texto comúnmente introducido

  • Errores interactivos

  • Largas consultas y llamadas remotas en ejecución

  • Almacenado en servidor

  • … y más …

Como pueden observar, AJAX, bien utilizada, es una técnica de desarrollo web que ofrece numerosas ventajas al navegante o usuario desde el punto de vista de interacción y usabilidad, no obstante, sin abuso se aprovecha mejor, hagan su investigación, el ser autodidacta es una buena práctica que trae buenos resultados. Actualmente estamos por desarrollar un pequeño módulo multimedia para un cliente, y estamos pensando utilizar Flash+AJAX, vamos a ver qué tal nos va, de concretizar la idea, ya se enterarán...


Fuentes consultadas:

+ http://es.wikipedia.org/wiki/AJAX
+ http://ajaxblog.com/
+ http://www.fiftyfoureleven.com/...
+ http://swik.net/Ajax/Places+To+Use+Ajax

No hay comentarios.: