AJAX

AJAX
Para otros usos de este término, véase Ajax.

Ajax, acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones.

Ajax es una tecnología asíncrona, en el sentido de que los datos adicionales se requieren al servidor y se cargan en segundo plano sin interferir con la visualización ni el comportamiento de la página. JavaScript es el lenguaje interpretado (scripting language) en el que normalmente se efectúan las funciones de llamada de Ajax mientras que el acceso a los datos se realiza mediante XMLHttpRequest, objeto disponible en los navegadores actuales. En cualquier caso, no es necesario que el contenido asíncrono esté formateado en XML.

Ajax es una técnica válida para múltiples plataformas y utilizable en muchos sistemas operativos y navegadores dado que está basado en estándares abiertos como JavaScript y Document Object Model (DOM).


Contenido

Tecnologías incluidas en Ajax

Ajax es una combinación de cuatro tecnologías ya existentes:

  • XHTML (o HTML) y hojas de estilos en cascada (CSS) para el diseño que acompaña a la información.
  • Document Object Model (DOM) accedido con un lenguaje de scripting por parte del usuario, especialmente implementaciones ECMAScript como JavaScript y JScript, para mostrar e interactuar dinámicamente con la información presentada.
  • El objeto XMLHttpRequest para intercambiar datos de forma asíncrona con el servidor web. En algunos frameworks y en algunas situaciones concretas, se usa un objeto iframe en lugar del XMLHttpRequest para realizar dichos intercambios.
  • XML es el formato usado generalmente para la transferencia de datos solicitados al servidor, aunque cualquier formato puede funcionar, incluyendo HTML preformateado, texto plano, JSON y hasta EBML.

Como el DHTML, LAMP o SPA, Ajax no constituye una tecnología en sí, sino que es un término que engloba a un grupo de éstas que trabajan conjuntamente.

Antecedentes de Ajax

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). 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 diferentes navegadores. Los primeros ejemplos incluyen la biblioteca JSRS en el año 2000, la introducción a la técnica imagen/cookie[1] en el mismo año y la técnica JavaScript bajo demanda (JavaScript on Demand)[2] en 2002. En ese año, se realizó una modificación por parte de la comunidad de usuarios[3] al Microsoft's Remote Scripting para reemplazar el applet Java por XMLHttpRequest.

Frameworks de Scripting Remoto como el ARSCIF[4] aparecieron en 2003 poco antes de que Microsoft introdujera Callbacks en ASP. NET.[5]

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 Terminal SVG[6] (basado en SVG), emplea una conexión persistente para el intercambio continuo entre el navegador y el servidor.

Problemas e Inconvenientes

  • Las páginas con AJAX son más difíciles de desarrollar que las páginas estáticas.
  • Las páginas creadas dinámicamente mediante peticiones sucesivas AJAX, no son registradas de forma automática en el historial del navegador, así que haciendo clic en el botón de "volver" del navegador, el usuario no será devuelto a un estado anterior de la página, en cambio puede volver a la última página que visitó. Soluciones incluyen el uso de IFrames invisible para desencadenar cambios en el historial del navegador y el cambio de la porción de anclaje de la dirección (después de un #).
  • Los motores de búsquedas no entienden JavaScript. La información en la página dinámica no se almacena en los registros del buscador.
  • Hay problemas usando Ajax entre nombres de dominios. Eso es una función de seguridad.
  • El sitio con Ajax usa más recursos en el servidor. Recomendación: sólo usar las peticiones necesarias en Ajax, no desarrollar todo el sitio en AJAX. Con esto garantizamos menos recursos del servidor.
  • Es posible que páginas con Ajax no puedan funcionar en teléfonos móviles, PDA u otros aparatos. Ajax no es compatible con todos los software para ciegos u otras discapacidades.

Navegadores que permiten Ajax

Ha de 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.

Navegadores que no permiten Ajax

  • Opera 7 y anteriores
  • Microsoft Internet Explorer para Windows versión 4.0 y anteriores
  • Anteriores a Safari 1.2
  • Dillo
  • Navegadores basados en texto como Lynx y Links
  • Navegadores para personas con capacidades especiales visuales (Braille)
  • Algunos navegadores de teléfonos móviles
  • Navegador de la PSP

Véase también

Referencias

  1. Remote scripting with javascript, Explicación y ejemplo de procesar un archivo JavaScript bajo demanda (en inglés).
  2. microsoft.public.scripting.remote, sustitución del applet Java por el objeto XMLHttpRequest (en inglés).
  3. ARSCIF, A Framework for Asynchronous Remote–Script Callback Invocation (en inglés)
  4. Script Callbacks in ASP.NET (en inglés)
  5. protocolo SVGT (en inglés).

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Нужна курсовая?

Mira otros diccionarios:

  • AJAX — [ˈædʒæks] ist ein Apronym für die Wortfolge „Asynchronous JavaScript and XML“. Es bezeichnet ein Konzept der asynchronen Datenübertragung zwischen einem Server und dem Browser, das es ermöglicht, innerhalb einer HTML Seite eine HTTP Anfrage… …   Deutsch Wikipedia

  • AJaX — [ˈædʒæks] ist ein Apronym für die Wortfolge „Asynchronous JavaScript and XML“. Es bezeichnet ein Konzept der asynchronen Datenübertragung zwischen einem Server und dem Browser, das es ermöglicht, innerhalb einer HTML Seite eine HTTP Anfrage… …   Deutsch Wikipedia

  • Ajax — may refer to: Mythology * Ajax (mythology), son of Telamon and a hero in the Trojan war, also known as Ajax the Great * Ajax the Lesser, son of Oileus and also a hero in the Trojan warPeople*Ajax (missionary), Arian missionary who converted the… …   Wikipedia

  • Ajax — ist der Name mehrerer Personen: Ajax der Große, Sohn des Königs Telamon von Salamis, einer der Haupthelden des Trojanischen Kriegs Ajax der Kleine, König von Lokris, der „Oileus Sohn“ Ajax (Missionar), ein westgotischer Missionar, der um 464 n.… …   Deutsch Wikipedia

  • ajax — héros grec qui devint fou parce qu on avait donné à Ulysse les armes d Achille mort; croyant tuer des ennemis, il massacra le bétail des Grecs et se suicida. ⇒AJAX, subst. masc. A. Guerrier intrépide et impétueux : • Tout ce qui m est permis, c… …   Encyclopédie Universelle

  • AJAX — technologijos statusas T sritis dirbtinis intelektas apibrėžtis Rinkinys saityno technologijų, kuriomis interaktyvaus tinklalapio atskiros dalys atnaujinamos asinchroniškai, neperkraunant viso tinklalapio. Toks atnaujinimas vykdomas įvykus… …   Lithuanian dictionary (lietuvių žodynas)

  • Ajax — technologijos statusas T sritis dirbtinis intelektas apibrėžtis Rinkinys saityno technologijų, kuriomis interaktyvaus tinklalapio atskiros dalys atnaujinamos asinchroniškai, neperkraunant viso tinklalapio. Toks atnaujinimas vykdomas įvykus… …   Lithuanian dictionary (lietuvių žodynas)

  • Ajax — Ajax. Unter diesem Namen sind zwei trojanische Helden bekannt. Ajax, der Lokrer, ein Sohn des Oileus, erschien mit 40 Schiffen vor Troja. Nach der Einnahme der Stadt entweihte er im Tempel der Minerva die Priesterin Kassandra. Zur Strafe für… …   Damen Conversations Lexikon

  • Ajax — ● AJAX, hace referencia a una tecnología que hace uso de JavaScript asíncrono + XML para el desarrollo web. ● El Ajax de Amsterdam es un equipo de fútbol holandés. ● Ajax también hace referencia a una marca de diversos productos relacionados con… …   Enciclopedia Universal

  • Ajax — name of two Greek heroes in the Trojan War (Great Ajax, son of Telamon, and Little Ajax, son of Oileus), Latin, from Gk. Aias, perhaps originally the name of an earth god, from aia earth. The Elizabethans punned on the name as a jakes a privy …   Etymology dictionary

  • Ajax — [ā′jaks΄] n. [L < Gr Aias] Gr. Myth. 1. a strong, brave Greek warrior in the Trojan War who kills himself when Achilles armor is given to Odysseus: called Ajax Telamon [tel′ə män΄] 2. one of the swiftest runners among the Greek warriors in the …   English World dictionary

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”