Está en la página 1de 4

AJAX en los sistemas Web

AJAX es un conjunto heterogéneo de tecnologías web utilizadas


conjuntamente para permitir que las interacciones dinámicas
cliente-servidor comunes en las aplicaciones web, se realicen sin
que estas requieran recargar o refrescar la página. AJAX es el
acrónimo de Asynchronous JavaScript and XML (JavaScript
Asíncrono y XML). AJAX no es una tecnología en sí misma - es
una combinación de tecnologías usada de una manera concreta.
AJAX utiliza distintas tecnologías de la siguiente forma:

 XHTML (o HTML) y CSS para crear la interfaz de usuario y


la información de estilo. Los elementos de XHTML y CSS
pueden ser modificados dinámicamente para mostrar
información nueva, cambiar el estilo de la página o alterar
partes de ella. Para realizar estos cambios usualmente se
emplea el DOM (Document Object Model).
 JavaScript se utiliza para manipular los elementos de la
interfaz a través del DOM y para establecer la
comunicación con el servidor web a través del objeto
XMLHttpRequest. Este objeto permite transmitir datos
(normalmente en formato XML) entre el cliente y el
servidor web sin necesidad de recargar la página o
refrescarla.

Utilizando AJAX, las aplicaciones web pueden permitir altos


niveles de interactividad y de procesamiento, sin requerir las
interacciones estándar entre cliente-servidor, que constan de los
siguientes pasos:

1. Se presenta una interfaz de la página Web.


2. Se recoge información del usuario (a través de formularios,
enlaces, etc.)
3. El usuario envía la información (envía el formulario, se
activa un enlace, etc.)
4. El servidor procesa la información enviada.
5. El servidor responde con una nueva interfaz de la página
web que es enviada al usuario.
Con AJAX, todos estos pasos se pueden realizar en la misma
interfaz. Algunos ejemplos de uso de AJAX son las aplicaciones
de mapas, búsquedas en tiempo real, chat, validación de
formularios en tiempo real y procesamiento en segundo
plano, aplicaciones de carro de compras, aplicaciones de correo
electrónico, y la lista continua. Las aplicaciones web y la
interacción mediante el uso de AJAX han dado origen al término
"Web 2.0" - término que sin duda indica una gran revolución en
el modo en que se hace uso de la web. Si bien ninguna de las
tecnologías que componen AJAX son nuevas o innovadoras, la
creciente popularidad y uso de AJAX conlleva la necesidad de
que los desarrolladores conozcan las implicaciones para la
accesibilidad que estas tecnologías acarrean.

¿Por qué AJAX?

Como se mencionó anteriormente, AJAX permite crear


aplicaciones web más dinámicas y ricas en características,
utilizando procesamiento del lado del servidor sin requerir la
metodología tradicional de "enviar datos - recibir la página web
modificada. Utilizando el objeto XMLHttpRequest, los datos
pueden ser transmitidos en segundo plano y con JavaScript se
puede modificar la interfaz de la aplicación y mostrar
información dinámica. Esto implica aplicaciones web más ágiles
ya que requieren menos procesamiento y menor transmisión de
datos, principalmente debido a no tener que generar la página
entera cada vez que ocurre algún cambio en ella. En lugar de
esto, una aplicación web refleja todos los cambios que se
producen. Es posible utilizar JavaScript para conseguir mayores
niveles de interactividad de los que se consiguen utilizando
únicamente HTML (por ejemplo, atajos de teclado, hacer clic y
arrastrar, etc. en Google Maps).

¿Por qué no usar AJAX?

AJAX puede no funcionar en todos los navegadores. Como su


nombre indica, AJAX requiere JavaScript. Esto significa que las
aplicaciones AJAX no funcionarán en navegadores web y
dispositivos que no soporten JavaScript. Por esta razón no es
accesible para muchos usuarios web típicos. Las guías para
contenido web accesible (Web Content Accessibility Guidelines)
requieren que las aplicaciones web funcionen aunque JavaScript
esté deshabilitado o no esté soportado por el navegador. AJAX
además requiere que el navegador soporte el objeto
XMLHttpRequest, cosa que muchos navegadores no hacen.

La solución actual a estos problemas es proveer una alternativa


sin AJAX para tu aplicación y permitir que la aplicación AJAX
continúe funcionando aunque no se soporte JavaScript o
XMLHttpRequest. Este requisito puede ser muy difícil de
conseguir. Los desarrolladores pueden optar por exigir a los
usuarios utilizar navegadores que soporten AJAX, pero deberían
entender que cumplir este requisito no es posible para todos los
usuarios - especialmente para los usuarios de dispositivos
móviles o con navegadores antiguos.

Por su propia naturaleza, AJAX tiende a actualizar y manipular


elementos de la interfaz "al vuelo". Además AJAX puede enviar
información al servidor sin interacción del usuario o hacerlo por
métodos que no son obvios para el mismo. Por ejemplo, muchos
usuarios esperan a que los formularios sean enviados, validados
y procesados cuando presionan un botón de submit, pero con
AJAX este proceso puede darse sin que sean conscientes (e.g.
cada 5 segundos, cuando un elemento del formulario pierde el
foco, etc.). Puede no ser intuitivo para los usuarios que la
información ha empezado a ser procesada y guardada - y esta
confusión se puede intensificar por el hecho de que AJAX es
capaz de realizar estas operaciones muy rápidamente. Muchos
usuarios esperan en estos casos algún retardo antes de la
respuesta o de que se presente alguna información adicional y
normalmente esperan que la página entera se refresque
mostrando una nueva visualización - con AJAX, ninguna de
estas indicaciones visuales pueden ser apreciables.

Otra cuestión con AJAX es la forma en que se actualiza la


interfaz de aplicación. Cuando se realiza una actualización de la
interfaz, puede que no sea evidente que el cambio se ha
realizado. El problema es todavía mayor para los usuarios de
lectores de pantalla. Los lectores de pantalla normalmente leen
de forma lineal. Cuando ha ocurrido un cambio en la interfaz, el
usuario de un lector de pantalla puede no darse cuenta del
cambio y es probable que el contenido nuevo no se lea.

Resumiendo, para permitir que las interfaces dinámicas sean


accesibles, la aplicación debe alertar al usuario cuando ocurre
un cambio, permitir el acceso directo al nuevo contenido, y en
consecuencia permitir un funcionamiento continuo de la
aplicación web. Lograr este objetivo es complejo, especialmente
para usuarios de lectores de pantalla, pero se puede conseguir
en muchas aplicaciones AJAX. La parte 2 de este
articulo presenta posibles soluciones para algunas de estas
cuestiones, incluyendo los métodos con ARIA (Accessible Rich
Internet Applications) que pueden hacer que el contenido
dinámico sea más accesible.

También podría gustarte