Novacreations

Desarollando Software

AJAX, Asynchronous JavaScript And XML

Seguramente has utilizado aplicaciones web como Gmail, Flickr, Panoramio, GoogleMaps u Outlook Web Access. Y si tienen algo en común es que son interfaces muy rápidas, ricas en contenido y llenas de opciones. Esto es gracias a AJAX, que es un acrónimo para Asynchronous JavaScript and XML. Una técnica de desarrollo que es la combinación de tecnologías ya existentes como son XHTML, DOM usando JavaScript y el objeto XMLHttpRequest.

El problema que se resuelve es que cuando el cliente ejecuta una solicitud al servidor, este, en base a los parámetros de entrada regresa una página completa nueva con los datos que se solicitaron. Esto gasta tiempo, ancho de banda y tiempo de procesamiento del servidor al generar toda esta nueva información. Sin embargo en muchas aplicaciones, requerimos únicamente intercambio de pequeñas cantidades de datos entre el servidor y el cliente. Las aplicaciones AJAX envían solicitudes para obtener únicamente la información que se necesita, sin tener que cargar toda la página nuevamente, obteniendo como resultado, una aplicación más dinámica, mas rica y que se carga en un menor tiempo posible ya que la página no es completamente refrescada.

El concepto es: Cargar y renderizar una página, luego mantenerse en esa página mientras scripts y rutinas van al servidor buscando, en background, los datos que son usados para actualizar la página solo re-renderizando la página y mostrando u ocultando porciones de la misma.

Todas estas tecnologías ya existían desde hace tiempo, pero es hasta ahora que la portabilidad de sus componentes en los diversos browsers la hacen realmente factible. Ya que la mayoría de los navegadores modernos lo soportan sin necesidad de instalar plugins adicionales.

Algunas interacciones posibles con AJAX son:

* Validación de tiempo real. Por ejemplo códigos postales, nombres de usuarios, números de serie, etc. Evita enviar la forma y validarla en el servidor, el usuario sabe que escribió mal su número al momento de terminar de ingresarlo
* Auto completar datos, como nombres, búsquedas, direcciones, etc.
* Detalles. Basado en un evento, a una página HTML se le pueden anexar información más detallada como listados que permitan ver detalles adicionales sobre un producto sin la necesidad de refrescar la página.
* Controles de interfaz como árboles, menús y barras de progreso sofisticados.
* Se pueden obtener datos específicos de la aplicación desde el servidor en tiempo real.
* Notificaciones del lado del servidor enviando al servidor eventos que puedan resultar en mensajes o redirecciones.

Los contrapesos son la complejidad que implica el desarrollo con las diversas tecnologías implicadas, la falta de estándares en el objeto XMLHttpRequest, la dependencia de Javascript y que el código fuente reside en gran parte del lado del cliente.

¿Y como funciona AJAX?

A grandes rasgos, podriamos considerar que tenemos una página web generada por alguna tecnología como PHP u ASP. Esta contiene una forma que requiere de la intervención del lado del servidor para validar un número sin refrescar la página, digamos, el numero de un pedido.

Debemos tener del lado del servidor un componente (una página php, un servlet) que se encarga de la validación, digamos validarDato.php.

Primero, del lado del cliente, una vez generado el evento usando javascript (onkeyup por ejemplo) creamos un objeto igualmente javascript XMLHttpRequest. Este objeto se encargara de llamar a la página validarDato.php enviándole el numero a validar, está página nos va a regresar una página XML la cual el XMLHttpRequest se encarga de recibir, analizar y actualizar el HTML DOM de acuerdo a la respuesta.

Esto nos evita tener que mandar la forma, validar y regresar al cliente. Siendo un ahorro tanto para el cliente (obtiene la confirmación de manera inmediata) y para el proveedor de servicios.




Subscribe to email feed



La fábrica de softw

La Fábrica de Software de la Dirección de Innovación y ...

Administradores de A

Durante años aplicación ES File Explorer era la mejor y ...

Apoyo del Conacyt a

El Consejo Nacional de Ciencia y Tecnología (Conacyt), como parte ...

Microsoft Surface St

Esta semana Microsoft anuncio la existencia de su nueva PC ...

Incuba tu proyecto c

¡Buscamos nuevas tecnologías! Si tu proyecto es seleccionado Telcel te otorgará ...

Las 10 funciones de

  Java 8 incluye nueva funcionalidad que nos permite tener un ...

Como usar una funci

Usar una función hash para encriptar una contraseña no es ...

Cómo escribir códi

Nunca supongas a la malicia lo que puede ser explicado ...

Las 114 preguntas de

¿Tienes una entrevista de trabajo en puerta para un posición Java? ...

Believe in technolog

Ziff Davis Publishing es la más grande editorial de contenidos ...