Vous êtes sur la page 1sur 4

AJAX

AJAX, acrnimo de Asynchronous JavaScript And


XML (JavaScript asncrono y XML), es una tcnica 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 comunicacin asncrona con el
servidor en segundo plano. De esta forma es posible realizar cambios sobre las pginas sin necesidad de recargarlas, mejorando la interactividad, velocidad y usabilidad
en las aplicaciones.

lenguaje de programacin de uso general de script


del lado del servidor originalmente diseado para el
desarrollo web de contenido dinmico tambin utilizado en el mtodo Ajax.
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.

Ajax es una tecnologa asncrona, en el sentido de que


los datos adicionales se solicitan al servidor y se cargan Como el DHTML, LAMP o SPA, Ajax no constituye una
en segundo plano sin interferir con la visualizacin ni el tecnologa en s, sino que es un trmino que engloba a un
comportamiento de la pgina, aunque existe la posibili- grupo de stas que trabajan conjuntamente.
dad de congurar las peticiones como sncronas de tal
forma que la interactividad de la pgina se detiene hasta
2 Antecedentes de Ajax
la espera de la respuesta por parte del servidor.
JavaScript es el Lenguaje de programacin (scripting language) en el que normalmente se efectan 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 asncrono est formateado en XML.

A pesar de que el trmino Ajax fue creado en 2005 por


Jesse James Garrett,[1] la historia de las tecnologas que
permiten Ajax se remonta a una dcada antes con la iniciativa de Microsoft en el desarrollo de Scripting Remoto.
Sin embargo, las tcnicas para la carga asncrona de contenidos en una pgina existente sin requerir recarga comAjax es una tcnica vlida para mltiples plataformas y
pleta remontan al tiempo del elemento iframe (introduciutilizable en muchos sistemas operativos y navegadores
do en Internet Explorer 3 en 1996) y el tipo de elemendado que est basado en estndares abiertos como JavaSto layer (introducido en Netscape 4 en 1997, abandonacript y Document Object Model (DOM).
do durante las primeras etapas de desarrollo de Mozilla).
Ambos tipos de elemento tenan el atributo src que poda
tomar cualquier direccin URL externa, y cargando una
1 Tecnologas incluidas en Ajax
pgina que contenga JavaScript que manipule la pgina
paterna, pueden lograrse efectos parecidos al Ajax.
Ajax es una combinacin de cuatro tecnologas ya exis- El Microsofts Remote Scripting (o MSRS, introducido
tentes:
en 1998) result un sustituto ms elegante para estas tcnicas, con envo de datos a travs de un applet Java el cual
XHTML (o HTML) y hojas de estilos en cascada se puede comunicar con el cliente usando JavaScript. Esta
(CSS) para el diseo que acompaa a la informa- tcnica funcion en ambos navegadores, Internet Explocin.
rer versin 4 y Netscape Navigator versin 4. Microsoft la
utiliz en el Outlook Web Access provisto con la versin
Document Object Model (DOM) accedido con un 2000 de Microsoft Exchange Server.
lenguaje de scripting por parte del usuario, especialmente implementaciones ECMAScript como La comunidad de desarrolladores web, primeJavaScript y JScript, para mostrar e interactuar di- ro colaborando por medio del grupo de noticias
microsoft.public.scripting.remote y despus usando blogs,
nmicamente con la informacin presentada.
desarrollaron una gama de tcnicas de scripting remoto
El objeto XMLHttpRequest para intercambiar da- para conseguir los mismos resultados en diferentes
tos de forma asncrona con el servidor web. En algu- navegadores. Los primeros ejemplos incluyen la biblionos frameworks y en algunas situaciones concretas, teca JSRS en el ao 2000, la introduccin a la tcnica
se usa un objeto iframe en lugar del XMLHttpRe- imagen/cookie[2] en el mismo ao y la tcnica JavaScript
quest para realizar dichos intercambios. PHP es un bajo demanda (JavaScript on Demand)[3] en 2002. En
1

ese ao, se realiz una modicacin por parte de la


comunidad de usuarios[4] al Microsofts Remote Scripting
para reemplazar el applet Java por XMLHttpRequest.

VASE TAMBIN

4 Soporte de AJAX
4.1 Navegadores que permiten AJAX

Frameworks de Scripting Remoto como el ARSCIF[5]


aparecieron en 2003 poco antes de que Microsoft intro- Ha de tenerse en cuenta que sta es una lista general, y el
dujera Callbacks en ASP. NET.[6]
soporte de las aplicaciones Ajax depender de las caracDesde que XMLHttpRequest est implementado en la tersticas que el navegador permita.
mayora de los navegadores, raramente se usan tcnicas
alternativas. Sin embargo, todava se utilizan donde se
requiere una mayor compatibilidad, una reducida implementacin, o acceso cruzado entre sitios web. Una alternativa, el Terminal SVG[7] (basado en SVG), emplea una
conexin persistente para el intercambio continuo entre
el navegador y el servidor.

Problemas e Inconvenientes

Navegadores basados en Gecko como Mozilla,


Mozilla Firefox, SeaMonkey, Camino, K-Meleon,
IceWeasel, Flock, Epiphany, Galeon y Netscape
versin 7.1 y superiores
Navegadores basados en WebKit como Google
Chrome de Google o Safari de Apple.
Microsoft Internet Explorer para Windows versin
5.0 y superiores, y los navegadores basados en l

Las pginas creadas dinmicamente mediante peticiones sucesivas AJAX, no son registradas de forma
automtica en el historial del navegador, as que haciendo clic en el botn de volver del navegador,

el usuario no ser devuelto a un estado anterior de


la pgina, en cambio puede volver a la ltima pgina que visit. Soluciones incluyen el uso de IFrames
invisible para desencadenar cambios en el historial
del navegador y el cambio de la porcin de anclaje 4.2
de la direccin (despus de un #).

Navegadores con el API KHTML versin 3.2 y superiores implementado, incluyendo Konqueror versin 3.2 y superiores y el Web Browser for S60 de
Nokia tercera generacin y posteriores
Opera versin 8.0 y superiores, incluyendo Opera
Mobile Browser versin 8.0 y superiores.

Navegadores que no permiten AJAX


Opera 7 y anteriores

Los motores de bsqueda no analizan JavaScript. La


informacin en la pgina dinmica no se almacena
en los registros del buscador. Exceptuando Google,
que desde el 2011 s indexa contenido Ajax y JavaScript. Matt Cutts (director del departamento contra
el spam en web de Google) lo conrm en Twitter: Googlebot keeps getting smarter. Now has the
ability to execute AJAX/JS to index some dynamic
comments.

Microsoft Internet Explorer para Windows versin


4.0 y anteriores

Hay problemas usando Ajax entre nombres de dominios, a esto se le conoce como Same Origin Policy
o Poltica del Mismo Origen, lo cual es una medida
de seguridad que puede ser solucionada con CrossOrigin Resource Sharing (CORS).

Algunos navegadores de telfonos mviles

Dependiendo de como se desarrolle el sitio web,


puedes mejorar o empeorar la carga en el servidor.
Ajax puede ayudar al servidor a evitar la fase de renderizacin de HTML, dejndole ese trabajo al cliente, pero tambin puede sobrecargar al servidor si se
hace varias llamadas a Ajax.
Es posible que pginas con Ajax no puedan funcionar en telfonos mviles, PDA u otros aparatos.
Ajax no es compatible con todos los software para
invidentes u otras discapacidades.

Anteriores a Safari 1.2


Dillo
Navegadores basados en texto como Lynx y Links
Navegadores para personas con capacidades especiales visuales (Braille)

Navegador de la PSP

5 Vase tambin
FJAX
HTTP Streaming
AJAJ (AJAX con JSON en lugar de XML)
Open Ajax
Progressive Enhancement
Rich Internet Application
Sajax

3
Xajax ajax for PHP
XMLHttpRequest
Dojo toolkit

Referencias

[1] Ajax: A New Approach to Web Applications


[2] Using a GIF as a Data Pipe, explicacin y ejemplo de uso
de la tcnica imagen/cookie (en ingls).
[3] Remote scripting with javascript, Explicacin y ejemplo
de procesar un archivo JavaScript bajo demanda (en ingls).
[4] microsoft.public.scripting.remote, sustitucin del applet
Java por el objeto XMLHttpRequest (en ingls).
[5] ARSCIF, A Framework for Asynchronous Remote
Script Callback Invocation (en ingls)
[6] Script Callbacks in ASP.NET (en ingls)
[7] protocolo SVGT (en ingls).

Enlaces externos

Wikimedia Commons alberga contenido multimedia sobre AJAX. Commons

Manual de AJAX, Manual de ajax en espaol con


fuentes
AJAX un nuevo acercamiento a Aplicaciones Web,
traduccin del artculo original de Jesse James Garret
Introduccin a AJAX (en espaol)
AJAX: The Ocial Microsoft ASP.NET AJAX Site
Sitio ocial de Microsoft (en ingls)
Ajax Mdulos Perl en CPAN (en ingls)
AjaxDaddy Galera de ejemplos y su correspondiente cdigo
Introduccin a AJAX Comenzando desde cero y llegando hasta las tcnicas ms avanzadas (Contenido
en web y en PDF).
Referencias de AJAX, y un buen ejemplo AJAX
DWR

8 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

Origen del texto y las imgenes, colaboradores y licencias

8.1

Texto

AJAX Fuente: https://es.wikipedia.org/wiki/AJAX?oldid=90317577 Colaboradores: Sabbut, Robbot, Cosimo, Angus, Sanbec, Zwobot,
H0m3r~eswiki, Tony Rotondas, Aloriel, Dodo, Avm, Gobas, Tano4595, Barcex, Daniel G., Wricardoh, Loco085, Ecemaml, Quistnix,
Desatonao, Jistark, Hispa, Airunp, JMPerez, Txopi, Natrix, Taichi, Rembiapo pohyiete (bot), Orgullobot~eswiki, Further (bot), RobotQuistnix, Alhen, Panimar, Superzerocool, Chobot, Mikel Gmez, Caiserbot, Yrbot, Amads, Baito, BOT-Superzerocool, BOTijo, FranciscoPerez, YurikBot, Jhony192, Mortadelo2005, Icvav, GermanX, Lin linao, KnightRider, Jesuja, Oscar del Rio, Eskimbot, Fariel, Ciencia Al Poder, Zanaqo, Asenosiain, Paintman, Niuweme, Faelomx, Dropzink, Fdz, Mosteo, CEM-bot, Pinobot, Laura Fiorucci, Danielkard,
Ignacio Icke, Roberpl, Rosarinagazo, Andalbor, Cactitos, Dorieo, Escribanoruben, Montgomery, FrancoGG, Thijs!bot, Javier Abreu, Pacomiro, Pablocourault, Lcrespom, TXiKi, Mahadeva, Eloi.sanmartin, RoboServien, JoaquinFerrero, Locovich, Manugut, TuvicBot, Botones,
Isha, Janoma, JAnDbot, Jugones55, Botx, Yamaneko, Muro de Aguas, CommonsDelinker, TXiKiBoT, Xosema, Rei-bot, NaSz, Lucasontivero, Snakefang, Parras, AlnoktaBOT, VolkovBot, Matdrodes, Shooke, Muro Bot, BotMultichill, SieBot, Mushii, Danielba894, Carlosmt,
Tucapl, Djblack!, Tonyslash60, Bigsus-bot, Inthenite, Mel 23, MacaBot, LloX, DorganBot, LastCyborg, Eduardosalg, Botelln, Leonpolanco, Mar del Sur, Pablo323, Botito777, LordT, Mario23021964, SilvonenBot, Shalbat, LucienBOT, Diegusjaimes, Pablocarballo, Dave96,
Luckas-bot, Ptbotgourou, Jotterbot, Dangelin5, Gacpro, ArthurBot, SuperBraulio13, Xqbot, Jkbw, SassoBot, Rubinbot, Torrente, Botarel,
LoliBot, ADR Sports, PatruBOT, KamikazeBot, Dinamik-bot, Gualloby, ArwinJ, Cem-auxBOT, Maoj-jb, 1pedrog, PatricioAlexanderWiki, Jorge c2010, Serviweb, Camebu, Hoo man, Rubpe19, MerlIwBot, MetroBot, Invadibot, Mapa-uv, Minsbot, Elvisor, Danielsan2099,
Miguel2706, Addbot, Elbiendelahumanidad, Ne roll 10 y Annimos: 317

8.2

Imgenes

Archivo:Commons-logo.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/4/4a/Commons-logo.svg Licencia: Public domain Colaboradores: This version created by Pumbaa, using a proper partial circle and SVG geometry features. (Former versions used
to be slightly warped.) Artista original: SVG version was created by User:Grunt and cleaned up by 3247, based on the earlier PNG version,
created by Reidab.

8.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0