¿Qué es AJAX?

AJAX es un término utilizado para describir un enfoque para diseñar e implementar aplicaciones web. Es un acrónimo de Asynchronous JavaScript and XML. El término se introdujo por primera vez en un artículo de Jesse James Garrett de Adaptive Path, una empresa de diseño web con sede en San Francisco. Concibió el término cuando se dio cuenta de la necesidad de una manera fácil y vendible de presentar un cierto estilo de diseño y construcción a los clientes.

El propósito principal de AJAX es ayudar a que las aplicaciones web funcionen más como aplicaciones de escritorio. El lenguaje de marcado de hipertexto (HTML), el lenguaje que impulsa la World-Wide Web, se diseñó en torno a la idea del hipertexto: páginas de texto que podrían vincularse dentro de sí mismas a otros documentos. Para que funcione HTML, la mayoría de las acciones que realiza un usuario final en su navegador envían una solicitud al servidor web. Luego, el servidor procesa esa solicitud, quizás envía más solicitudes y, finalmente, responde con lo que solicitó el usuario.

Si bien este enfoque puede haber funcionado bien en los primeros días de Internet, para las aplicaciones web modernas, la espera constante entre clics es frustrante para los usuarios y sirve para empañar toda la experiencia. Los usuarios se han acostumbrado a respuestas ultrarrápidas en sus aplicaciones de escritorio y no están contentos cuando un sitio web no puede ofrecer la misma respuesta inmediata. Al agregar una capa adicional entre la interfaz de usuario y la comunicación con el servidor, las aplicaciones AJAX eliminan gran parte del retraso entre la interacción del usuario y la respuesta de la aplicación. A medida que AJAX se vuelve más común en aplicaciones web populares, los usuarios se acostumbran cada vez más a esta respuesta inmediata, lo que ayuda a impulsar a más empresas a adoptar metodologías AJAX.

Una aplicación AJAX consta de una serie de aplicaciones que se utilizan en conjunto para crear una experiencia más fluida. Esto incluye HTML extensible (XHTML) y Hojas de estilo en cascada (CSS) para construir la estructura de la página subyacente y su estilo visual, respectivamente; algún tipo de suite de interacción que utiliza el modelo de objetos de documento; manipulación de datos utilizando Extensible Markup Language (XML); recuperación de datos mediante XMLHttpRequest; y JavaScript para ayudar a estos diferentes elementos a interactuar entre sí. AJAX se está extendiendo rápidamente por toda la web, con ejemplos visibles en muchos sitios importantes. Google Maps, por ejemplo, personifica en muchos sentidos el espíritu del modelo AJAX, con su compleja funcionalidad y su interactividad prácticamente perfecta.

Como la mayoría de las filosofías emergentes del desarrollo web, AJAX tiene sus detractores. Un argumento común en contra de AJAX es que en muchos casos rompe alguna funcionalidad esperada, como el uso del botón Atrás, causando confusión. Si bien existen algunas correcciones para muchas de estas interrupciones, rara vez se implementan en la medida en que el comportamiento de una aplicación AJAX se ajusta al comportamiento esperado del navegador más grande.