Últimamente no paro de leer una y otra vez la palabra AJAX en todo revista, foro o lista de correo sobre tecnologías web. Más o menos tenía una idea aproximada de lo que era AJAX pero es hoy cuando me he decidido a tratar de entenderlo.
Leyendo el artículo AJAX un nuevo acercamiento a aplicaciones Web del blog Denken Über me he formado una idea de lo que es y he confirmado mis sospechas de qué aplicaciones había por ahi ya hechas con esta tecnología.
¿Qué es AJAX?
AJAX es un acrónimo inglés que significa Asynchronous JavaScript + XML, es decir, no es un producto en sí, sino una técnica que utiliza varias tecnologías, del mismo modo que LAMP es Linux+Apache+MySQL+PHP.
Las tecnologías que se usan son:
- HTML, XHTML y CSS para la presentación de contenidos
- Javascript y DOM para cambiar los contenidos de una página dinámicamente
- XMLHttpRequest, XML, y XSLT para intercambio de datos.
Las gran mayoría de aplicaciones web hechas hasta ahora se basan en un modelo de petición, espera, y respuesta. El usuario pincha un enlace, espera la respuesta con una página en blanco, y luego recibe la página de respuesta. Aunque la página de respuesta sea prácticamente igual a la anterior, se le envía la página completa, lo que alarga la espera.
AJAX resuelve gran parte de estos problemas. Aprovecha los tiempos muertos del usuario para cargar datos en un segundo plano y así reducir la espera. Además, permite que el servidor envíe únicamente los datos de la página que cambian mediante XML (SOAP por ejemplo). No está obligado a enviar toda la página como hasta ahora. Esto acelera la experiencia de usuario ya que tiene que esperar mucho menos.
Esto se logra cargando en el navegador del usuario un motor AJAX escrito en Javascript. El motor normalmente se oculta en un marco o frame invisible. Cualquier acción del usuario es atendida por el motor en el propio navegador, y únicamente se hace una petición al servidor cuando es necesario.
Aplicaciones que usan AJAX
Como me temía, la empresa que está apostando fuerte por esta nueva tecnología es Google. Ya lo ha utilizado en GMail, Google Maps, Orkut, la nueva versión de Google Groups, y Google Suggest, entre otros. Además de Google, lo utiliza también el buscador de Amazon A9.com y Flickr. Por ejemplo, en Google Suggest es utilizado para sugerir palabras de búsqueda mientras se teclea.
Desventajas
En mi opinión, técnicamente es una auténtica maravilla. Solo hay que ver lo rápido que va GMail.
Un receloso del uso intensivo de Javascript, como soy yo, no puede evitar indicar algunas desventajas que también se han señalado en la Wikipedia:
- Disminuye la accesibilidad: No hacía falta ser muy listo para adivinar esto. Al depender de Javascript, la aplicación no puede ser accedida por un navegador que no tenga Javascript. GMail resuelve este problema ofreciendo una versión de la aplicación sin Javascript. De todas formas, hay que tener cuidado con esto. Además, meter el motor en un frame oculto, tampoco ayuda mucho a tener una página accesible.
- Disminuye la usabilidad: Los botones del navegador "Atrás" y "Refrescar" pueden funcionar mal en algunas ocasiones, ya que aunque el contenido cambia dinámicamente de un modo muy rápido, la página sigue siendo la misma. Por ejemplo, a veces, yo tengo que darle dos veces para refrescar la bandeja de entrada de GMail
Conclusión
La verdad es que AJAX es técnicamente sorprendente pero, a menos que se utilice con cuidado, no ayuda mucho a la comunidad que trata de concienciar a los desarrolladores acerca del desarrollo de páginas accesibles. Habrá gente que lo utilice y trate de minimizar los posibles impactos en la usabilidad y accesibilidad, y habrá otros que pasen olímpicamente y degraden aún más sus sitios web.



Coincido contigo. Los esfuerzos que se están haciendo para dar a conocer la accesibilidad web, pueden enterrarse debajo de esa "nueva tecnología" que es una maravilla y visualmente espectacular.
En el fondo me recuerda vagamente a flash.
Pero de todas formas, no niego su utilidad, a pesar de sus inconvenientes. Hay que tener en cuenta que esta filosofía de desarrollo tiene todavía pocos meses de vida, y se pueden conseguir unos resultados muchos mejores, y más accesibles, de lo que hay ahora.
Esto es la web, je je.
La primera NORMA de las aplicaciones Web 2.0 (entre ellas las que tiran de Ajax) es que DEBEN ser degradables. Si alguien (o algo) no tiene javascript habilitado, se va a encontrar con una página "a la antigua", recargando con cada acción.
No es una tecnología nueva, es una nueva implementación de una tecnología madura, pero poco conocida. Con ASP.NET y con MONO se pueden hacer también páginas de carga asíncrona.
La novedad de AJAX está precisamente en que no depende de tecnologías "no accesibles" y en que se puede desarrollar sobre CUALQUIER lenguaje de servidor (PHP, PYTHON, ASP, PERL, COLDFUSION...)
Ya había hablado de que Google está apostando fuerte por la tecnología ...
... hay que recordar que no es la versión definitiva, es la versión beta de pruebas - es que, por un lado, al ser una aplicación AJAX, a veces el refresco de la página no funciona a la primera cuando se hace clic en la bandeja de entrada...
... como mi hermana o mi padre, creo que pueden perderse en estas aplicaciones en algunas ocasiones.
Ya lo dije en su día, AJAX es impresionante, pero crea problemas de accesibilidad y usabilidad que si el autor no es consciente de ellos y los soluciona...
Una pregunta : ¿Se utiliza ajax por ejemplo para hacer lo que se hace aquí :
1. http://www.elnuevodiario.com.ni/caja.js
2. http://www.diarioti.com/inc/titulares.js
?
Estoy tratando de hacer lo mismo, pero hasta ahora no he podido. Si me puedes dar una respuesta te lo agradecería.
Salu2
No lo he mirado profundamente, pero eso es simplemente Javascript. Dinámicamente, dibuja elementos en la página mediante document.write().
Si, bueno la accesibilidad...pero quien no utiliza un
navegador sin soporte para javascript?.
Pero aparte de esto, yo creo que el punto fuerte de AJAX
el intercambio asíncrono de datos vía XML. El problema de las esperas de carga es derivado del protocolo HTTP, que las tecnologías actuales intentan en cierto modo parchear.
Mientras se sigan utilizando protocolos tan limitados como HTTP, las tecnologías web van a seguir siguiendo parches que solucionan algunas para conseguir el objetivo final
de tener un aplicaciones de escritorio en el navegador .HTTP esta diseñado para la transferencia de hypertexto y punto, no da para más.
Es arriesgado salvar el problema de la accesibilidad escondiendolo bajo la alfombra: ¿"qué navegador no usa javascript"? Hay un usuario al que todo el mundo mima, Google, y este usuario no utiliza javascript.
No digo que AJAX sea malo sabiendo utilizarlo, porque hay casos concretos donde creo que es una maravilla (por ejemplo, en la carga de combos), pero estoy seguro que va a fastidiar gran parte de los logros que se han conseguido en el campo de la accesibilidad.
Para mí, lo ideal, sería perfeccionar el protocolo HTTP que, como dices, es muy limitado.
el HTTP yo más que perfeccionarlo, me lo cargaba.Otro ejemplo de su tiranía, Web Services = versión cutre de CORBA que funciona sobre HTTP. (Cuando estoy de malas hasta mekgo en el XML, : P).
En cuanto a AJAX le falta, para mi gusto, madurar, y que se generalice el uso de pequeñas maravillas (en cuanto a lo que nos facilita la vida a los que picamos código) de
echo2 o gwt (Google Web Toolkit), porque los de Google más que apostar fuerte, hacen uso intensivo de AJAX.