Diferencia entre revisiones de «AJAX»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Sin resumen de edición
Locovich (discusión · contribs.)
Deshecha la edición 29843913 de 200.79.3.229 (disc.)
Línea 1: Línea 1:
'''AJAX''', acrónimo de '''''A'''synchronous '''J'''avaScript '''A'''nd '''X'''ML'' ([[JavaScript]] asíncrono y [[XML]]), es una técnica de desarrollo [[web]] para crear aplicaciones interactivas o [[Rich Internet Application|RIA]] (Rich Internet Applications). Estas aplicaciones se ejecutan en el [[Cliente (informática)|cliente]], es decir, en el [[navegador web|navegador]] de los usuarios mientras se mantiene la comunicación [[asíncrono|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''', acrónimo de '''''A'''synchronous '''J'''avaScript '''A'''nd '''X'''ML'' ([[JavaScript]] entre sitios web. Una alternativa, el [[Terminal SVG]]<ref name="svgt">[http://networkimprov.net/airwrx/awscene.html protocolo SVGT] (en inglés).</ref> (basado en [[Scalable Vector Graphics|SVG]]), emplea una conexión persistente para el intercambio continuo entre el navegador y el servidor.

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).

== 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 [[framework]]s y en algunas situaciones concretas, se usa un objeto <tt>[[iframe]]</tt> 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 <tt>iframe</tt> (introducido en Internet Explorer 3 en 1996) y el tipo de elemento <tt>layer</tt> (introducido en Netscape 4 en 1997, abandonado durante las primeras etapas de desarrollo de Mozilla). Ambos tipos de elemento tenían el atributo <code>src</code> 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]] ''[http://groups.google.es/group/microsoft.public.scripting.remote/topics?lnk=gschg&hl=es microsoft.public.scripting.remote]'' y después usando [[blog]]s, desarrollaron una gama de técnicas de scripting remoto para conseguir los mismos resultados en diferentes navegadores. Los primeros ejemplos incluyen la librería [[Scripting remoto en Javascript|JSRS]] en el año 2000, la introducción a la técnica [[imagen/cookie]]<ref name="tecnica_imagen_cookie">[http://www.depressedpress.com/Content/Development/JavaScript/Articles/GIFAsPipe/Index.cfm Using a GIF as a Data Pipe], explicación y ejemplo de uso de la técnica imagen/cookie (en inglés).</ref> en el mismo año y la técnica [[JavaScript bajo demanda]] (JavaScript on Demand)<ref name="js_on_demand">[http://dotvoid.com/view.php?id=13 Remote scripting with javascript], Explicación y ejemplo de procesar un archivo JavaScript bajo demanda (en inglés).</ref> en 2002. En ese año, se realizó una modificación por parte de la comunidad de usuarios<ref name="modif_usuarios_MSRS_applet_por_js">[http://groups.google.ca/group/microsoft.public.scripting.remote/browse_thread/thread/99b7e6152b45b2e7/6b3689e2dc7401dc microsoft.public.scripting.remote], sustitución del applet Java por el objeto XMLHttpRequest (en inglés).</ref> al ''Microsoft's Remote Scripting'' para reemplazar el applet Java por [[XMLHttpRequest]].

[[Framework]]s de Scripting Remoto como el [[ARSCIF]]<ref name="arscif">[http://arscif.dsi.unimi.it/ ARSCIF], A Framework for Asynchronous Remote–Script Callback Invocation (en inglés)</ref> aparecieron en 2003 poco antes de que [[Microsoft]] introdujera Callbacks en [[Active Server Pages|ASP]]. NET.<ref name="callback_en_ASPNET">[http://msdn.microsoft.com/msdnmag/issues/04/08/CuttingEdge/ Script Callbacks in ASP.NET (en inglés)]</ref>

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]]<ref name="svgt">[http://networkimprov.net/airwrx/awscene.html protocolo SVGT] (en inglés).</ref> (basado en [[Scalable Vector Graphics|SVG]]), emplea una conexión persistente para el intercambio continuo entre el navegador y el servidor.


== Navegadores que permiten AJAX ==
== Navegadores que permiten AJAX ==
Línea 37: Línea 61:


== Enlaces externos ==
== Enlaces externos ==
<!-- ¡AVISO!: Este no es el mejor lugar para hacer publicidad de su negocio o página web. Los enlaces no afectan su popularidad en Google u otros buscadores. Considere esto antes de incorporar un dwr-o-el-mejor-tutorial-dwr/ Referencias de AJAX, y un buen ejemplo AJAX DWR]
<!-- ¡AVISO!: Este no es el mejor lugar para hacer publicidad de su negocio o página web. Los enlaces no afectan su popularidad en Google u otros buscadores. Considere esto antes de incorporar un nuevo enlace.
Los enlaces deben aportar información complementaria y relevante al artículo, de lo contrario no tienen cabida. Más información sobre "lo que Wikipedia no es" en:
Más información sobre "lo que Wikipedia no es" en:
http://es.wikipedia.org/wiki/Wikipedia:Lo_que_Wikipedia_no_es
-->
*[http://elrincondeajax.com/ Manual de AJAX] Completo tutorial en PDF de la técnica de programación con fuentes y varios videos
*[http://www.uberbin.net/archivos/internet/ajax-un-nuevo-acercamiento-a-aplicaciones-web.php AJAX un nuevo acercamiento a Aplicaciones Web], traducción del artículo original de Jesse James Garret
*[http://sherekan.com.ar/blog/2008/04/19/introduccion-a-ajax/ Introducción a AJAX] (en español)
*[http://ajax.asp.net/ AJAX: The Official Microsoft ASP.NET AJAX Site] Sitio oficial de Microsoft (en inglés)
*[http://search.cpan.org/search?query=Ajax&mode=all Ajax] Módulos [[Perl]] en [[CPAN]] (en inglés)
*[http://www.ajaxdaddy.com AjaxDaddy] Galería de ejemplos y su correspondiente código
*[http://www.librosweb.es/ajax/index.html Introducción a AJAX] Comenzando desde cero y llegando hasta las técnicas más avanzadas (Contenido en web y en PDF).
*[http://www.programacionweb.net/cursos/curso.php?num=2 Curso de AJAX]
*[http://www.preguntaalexperto.net/articles/miaconoComo-crear-un-motor-AJAX.aspx Como crear un motor AJAX (parte I)] Artículo sobre Como crear un motor AJAX.
*[http://www.preguntaalexperto.net/articles/miacono-Como-crear-un-Motor-AJAX---Parte-II.aspx Como crear un motor AJAX (parte II)] La continuación.
*[http://soaagenda.com/journal/articulos/el-mejor-ejemplo-dwr-o-el-mejor-tutorial-dwr/ Referencias de AJAX, y un buen ejemplo AJAX DWR]


{{bueno|de}}
{{bueno|de}}
Línea 52: Línea 91:
[[cs:Asynchronous JavaScript and XML]]
[[cs:Asynchronous JavaScript and XML]]
[[da:Ajax (programmering)]]
[[da:Ajax (programmering)]]
[[de:Ajax (ammierung)]]
[[de:Ajax (Programmierung)]]
[[en:Ajax (programming)]]
[[en:Ajax (programming)]]
[[eu:Ajax (programazioa)]]
[[eu:Ajax (programazioa)]]
Línea 60: Línea 99:
[[ga:AJAX]]
[[ga:AJAX]]
[[gl:AJAX]]
[[gl:AJAX]]
[[he:AJAX (תכנות)]])]]
[[he:AJAX (תכנות)]]
[[hu:Ajax (programozás)]]
[[hy:AJAX]]
[[id:AJAX]]
[[it:AJAX]]
[[ja:Ajax]]
[[ka:Ajax]]
[[ko:Ajax]]
[[lt:AJAX]]
[[mk:AJAX]]
[[ml:അജാക്സ് (കംപ്യൂട്ടര്‍ പ്രോഗ്രാമിങ്ങ്)]]
[[mn:Ajax (программчлал)]]
[[ms:Ajax]]
[[ms:Ajax]]
[[nl:Asynchronous JavaScript and XML]]
[[nl:Asynchronous JavaScript and XML]]
[[nn:AJAX]]
[[nn:AJAX]]
[[no:Ajax (Internettprogramação)]]
[[no:Ajax (Internett)]]
[[pl:AJAX]]
[[pt:AJAX (programação)]]
[[ro:Ajax (programare)]]
[[ro:Ajax (programare)]]
[[ru:AJAX]]
[[ru:AJAX]]
Línea 74: Línea 126:
[[tk:Ajax (programmirleme)]]
[[tk:Ajax (programmirleme)]]
[[tr:AJAX (programlama)]]
[[tr:AJAX (programlama)]]
[[uk:A
[[uk:AJAX]]
[[vi:Ajax (lập trình)]]
[[vi:Ajax (lập trình)]]
[[zh:AJAX]]
[[zh:AJAX]]

Revisión del 21:31 18 sep 2009

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).

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 librería 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.

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
  • Safari, cualquier versión anterior a la 1.2
  • Dillo
  • Navegadores basados en texto como Lynx y Links
  • Navegadores para incapacitados visuales (Braille)

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