AJAX, acrónimo de Asynchronous JavaScript And XML (JavaScript y XML asíncronos), es una técnica de desarrollo web para crear aplicaciones interactivas. Éstas se ejecutan en el cliente, es decir, en el navegador del usuario, y mantiene comunicación asíncrona con el servidor en segundo plano. De esta forma, es posible realizar cambios sobre la misma página sin necesidad de recargarla. Esto significa aumentar la interactividad, velocidad y usabilidad en la misma [1].
Las tecnologías que forman AJAX son [2]:
• DOM, para la interacción y manipulación dinámica de la presentación.
• XML, XSLT y JSON, para el intercambio y la manipulación de información.
• XMLHttpRequest, para el intercambio asíncrono de información.
• JavaScript, para unir todas las demás tecnologías.

Figura 1. Tecnologías agrupadas bajo el concepto de AJAX
En el siguiente esquema, la imagen de la izquierda muestra el modelo tradicional de las aplicaciones web. La imagen de la derecha muestra el nuevo modelo propuesto por AJAX:
Figura 1.2. Comparación gráfica del modelo tradicional de aplicación Web y del nuevo modelo propuesto por AJAX. (Imagen original creada por Adaptive Path y utilizada con su permiso)
AJAX permite mejorar completamente la interacción del usuario con la aplicación, evitando las recargas constantes de la página, ya que el intercambio de información con el servidor se produce en un segundo plano.
Las aplicaciones construidas con AJAX eliminan la recarga constante de páginas mediante la creación de un elemento intermedio entre el usuario y el servidor. La nueva capa intermedia de AJAX mejora la respuesta de la aplicación, ya que el usuario nunca se encuentra con una ventana del navegador vacía esperando la respuesta del servidor.
Historia
A pesar de que el término “Ajax” fuese creado en 2005, la historia de las tecnologías que permiten Ajax se remonta a una década antes con la iniciativa de Microsoft en el desarrollo de Scripting Remoto. Sin embargo, las técnicas para la carga asíncrona de contenidos en una página existente sin requerir recarga completa remontan al tiempo del elemento iframe (introducido en Internet Explorer 3 en 1996) y el tipo de elemento layer (introducido en Netscape 4 en 1997, abandonado durante las primeras etapas de desarrollo de Mozilla). [3]
Ambos tipos de elemento tenían el atributo src que podía tomar cualquier dirección URL externa, y cargando una página que contenga javascript que manipule la página paterna, pueden lograrse efectos parecidos al Ajax.
El Microsoft’s Remote Scripting (o MSRS, introducido en 1998) resultó un sustituto más elegante para estas técnicas, con envío de datos a través de un applet Java el cual se puede comunicar con el cliente usando JavaScript. Esta técnica funcionó en ambos navegadores, Internet Explorer versión 4 y Netscape Navigator versión 4. Microsoft la utilizó en el Outlook Web Access provisto con la versión 2000 de Microsoft Exchange Server.
La comunidad de desarrolladores web, primero colaborando por medio del grupo de noticias microsoft.public.scripting.remote y después usando blogs, desarrollaron una gama de técnicas de scripting remoto para conseguir los mismos resultados en diferente navegadores. Los primeros ejemplos incluyen la librería JSRS en el 2000, la introducción a la técnica imagen/cookie en el mismo año y la técnica JavaScript on Demand en 2002. En ese año, se realizó una modificación por parte de la comunidad de usuarios al Microsoft’s Remote Scripting para reemplazar el applet Java por XMLHttpRequest. [4]
Frameworks de Scripting Remoto como el ARSCIF aparecieron en 2003 poco antes de que Microsoft introdujera Callbacks en ASP.NET.
Desde que XMLHttpRequest está implementado en la mayoría de los navegadores, raramente se usan técnicas alternativas. Sin embargo, todavía se utilizan donde se requiere una mayor compatibilidad, una reducida implementación, o acceso cruzado entre sitios web. Una alternativa, el protocolo SVGT, emplea una conexión persistente para el intercambio continuo entre el navegador y el servidor.
Se recomienda usar AJAX para [5]:
• Form driven interaction.
• Deep hierarchical tree navigation.
• Rapid user-to-user communication.
• Voting, Yes/No boxes, Ratings submissions.
• Filtering and involved data manipulation.
• Commonly entered text hints/autocompletion.
NO se recomienda usar AJAX para [5]:
• Simple forms.
• Search.
• Basic navigation.
• Replacing a large amount of text.
• Display manipulation.
• Useless widgets.
Bibliografía
[2] Javier Eguíluz Pérez, Introducción a AJAX, http://www.librosweb.es/ajax/
[3] Wikipedia, Ajax, http://es.wikipedia.org/wiki/AJAX
[4] Uannight, Historia de Ajax, http://uannight.wordpress.com/2007/04/19/historia-de-ajax/
[5] Olga, Ajax Accesible, http://olgacarreras.blogspot.com/2007/02/ajax-accesible.html