AJAX

RECU-0089 (Recurso Ficha Técnica)

Descripción

AJAX, iniciales de Asíncrono Javascript y XML, es una técnica de desarrollo para crear aplicaciones web interactivas. La intención es hacer las páginas web más sensibles al intercambio de pequeñas cantidades de datos con el servidor de aplicaciones de fondo, pero sin la necesidad de refrescar toda la información de la página cada vez que el usuario hace un cambio. Esto se traduce en incrementar la interactividad, la velocidad y la usabilidad. AJAX en sí mismo no es una tecnología, pero sí un término que se refiere al uso de un conjunto de tecnologías. La técnica AJAX utiliza una combinación de:

  • XHTML(o HTML), CSS (hojas de estilo en cascada), para maquetar y dar estilo a la información
  • DOM accedido por un lenguaje de scripting de cliente, especialmente las implementaciones de ECMAScript como Javascript o JScript, para dinámicamente mostrar e interactuar con la información expuesta.
  • El objeto XMLHttpRequest para intercambiar asíncronamente información con el servidor web.
  • XML, como el formato más extendido de intercambio de información entre el servidor y el cliente.

Ventajas e inconvenientes

La utilización de Ajax tiene asociado un conjunto de ventajas:

  • Con Ajax es posible la construcción de sitios web de manera rápida y dinámica.
  • Se utilizan los recursos de todas las máquinas clientes en lugar del servidor.
  • Ajax permite realizar procesos en la computadora cliente (con JavaScript) con datos provenientes del servidor.
  • El proceso de crear la página es realizado en el servidor antes de ser enviada a a través de la red.

Sin embargo, no todo son aspectos positivos, también existen algunas desventajas:

  • Falta de soporte de JavaScript de algunos clientes (browsers)
  • Falta de soporte del objeto XMLHTTPRequest
  • La dificultad de determinar cuándo una zona o fragmento de una página ha sido actualizada mediante Ajax, producto de la navegación lineal de las páginas que realizan particularmente los usuarios con discapacidades visuales.
  • Los navegadores distintos se comportan de maneras distintas: hay que probar mas la aplicación.
  • El hecho de utilizar JavaScript hace que la aplicación pierda accesibilidad. Pueden encontrarse usuarios que tengan desactivado la ejecución de scripts en sus navegadores.

Requisitos e incompatibilidades

  • Usabilidad. Hay que concienciar al usuario final acerca de la manera de interactuar con una aplicación web que incorpore tecnología AJAX. En una aplicación AJAX, los botones "Atrás", "Adelante" y "Reload " dejan de tener sentido y el usuario no los deberá utilizar. Mientras en una aplicación web normal el botón "Atrás" les llevará a la última página cargada, en aplicaciones AJAX lo más seguro es que esto no ocurra.Otro problema que se plantea es la agregaciones a los marcadores o favoritos un momento particular de la aplicación.
  • Tiempos de respuesta. El intervalo entre la petición del usuario y la respuesta del servidor debe tenerse en cuenta durante el desarrollo de aplicaciones AJAX. Sin la información claro al usuario, carga de datos elegante, y una dirección apropiada del objeto XMLHttpRequest los usuarios pueden experimentar esperas en la interfaz de la aplicación web, algo que los usuarios pueden no esperar o comprender. Como soluciones a estas esperas, frecuentemente se recomienda el uso de información visual para comunicar al usuario acerca de la actividad en segundo plano y/o precarga de contenido y datos.En general el impacto potencial de la espera no ha sido "resuelto" por ninguno de los toolkits y frameworks para AJAX de código abierto disponibles hoy en día.
  • Utilización de javascript. Aunque AJAX no necesita ningún tipo de plug-in para el navegador, requiere que los usuarios tengan el JavaScript activado. Esto se aplica a todos los navegadores que soportan esta tecnología excepto para Microsoft Internet Explorer 6 y anteriores los cuales necesitan también tener el ActiveX activado, ya que el objeto XMLHttpRequest está implementado junto con el ActiveX en este navegador. Internet Explorer 7, por otra parte, va a implementar esta interfaz como un objeto JavaScript nativo y por tanto no se va a necesitar ActiveX para que AJAX pueda funcionar con normalidad.Como ocurre con las aplicaciones DHTML, las de AJAX deben de ser probadas rigurosamente para adaptarse a los diferentes navegadores y plataformas.
  • Navegadores que permiten AJAX. Debe tenerse en cuenta que ésta es una lista general, y el soporte de las aplicaciones AJAX dependerá de las características que el navegador permita.
    • Microsoft Internet Explorer para Windows versión 5.0 y superiores, y los navegadores basados en él
    • Navegadores basados en Gecko como Mozilla, Mozilla Firefox, SeaMonkey, Camino, Flock, Epiphany, Galeon y Netscape versión 7.1 y superiores
    • Navegadores con el API KHTML versión 3.2 y superiores implementado, incluyendo Konqueror versión 3.2 y superiores, Apple Safari versión 1.2 y superiores, y el Web Browser for S60 de Nokia tercera generación y posteriores
    • Opera versión 8.0 y superiores, incluyendo Opera Mobile Browser versión 8.0 y superiores
  • Navegadores que no permiten AJAX
    • Opera 7 y anteriores
    • Microsoft Internet Explorer para Windows versión 4.0 y anteriores
    • Microsoft Internet Explorer para Macintosh, todas las versiones
    • Navegadores basados en texto como Lynx y Links
    • Navegadores para incapacitados visuales (braille)

En definitiva, uno no debe hacerse “esclavo” de la tecnología puntera a la hora de diseñar aplicaciones informáticas. La tecnología AJAX es muy potente, pero se debe usar con mucho juicio y sólo si es realmente necesaria. Además, es conveniente no usar AJAX de manera independiente, sino apoyado por un framework que le permita abstraerse de la tecnología subyacente.

Interacciones

Existen numerosos frameworks disponibles que utilizan Ajax. Entre los más extendidos se encuentran:

  • DWR
  • Ajax4JSF
  • Prototype
  • Script.aculo.us
  • Dojo
  • jQuery