Ajax
Ajax
Ajax
Ajax es una tecnologa asncrona, en el sentido de que los datos adicionales se requieren al servidor y se cargan en segundo plano sin interferir con la visualizacin ni el comportamiento de la pgina. Java Script es el lenguaje interpretado (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. Ajax es una tcnica vlida para mltiples plataformas y utilizable en muchos sistemas operativos y navegadores dado que est basado en estndares abiertos como JavaScript y Document Object Model (DOM).
Historia
A pesar de que el trmino Ajax fuese creado en 2005, 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 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 tenan el atributo src que poda tomar cualquier direccinURL externa, y cargando una pgina que contenga javascript que manipule la pgina paterna, pueden lograrse efectos parecidos al Ajax. El Microsoft's Remote Scripting (o MSRS, introducido en 1998) result un sustituto ms elegante para estas tcnicas, con envo de datos a travs de un applet Java el cual se puede comunicar con el cliente usando JavaScript. Esta tcnica funcion en ambos navegadores, Internet Explorer versin 4 y Netscape Navigator versin 4. Microsoft la utiliz en el Outlook Web Access provisto con la versin 2000 de Microsoft Exchange Server. La comunidad de desarrolladores web, primero colaborando por medio del grupo de noticias microsoft.public.scripting.remote y despus usando blogs, desarrollaron una gama de tcnicas de scripting remoto para conseguir los mismos resultados en diferentes navegadores. Los primeros ejemplos incluyen la biblioteca JSRS en el ao 2000, la introduccin a la tcnica imagen/cookie1 en el mismo ao y la tcnicaJavaScript bajo demanda (JavaScript on Demand)2 en 2002. En ese ao, se realiz una modificacin por parte de la comunidad de usuarios3 al Microsoft's Remote Scripting para reemplazar el applet Java porXMLHttpRequest. Frameworks de Scripting Remoto como el ARSCIF4 aparecieron en 2003 poco antes de que Microsoft introdujera Callbacks en ASP. NET.5 Desde que XMLHttpRequest est implementado en la 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 SVG6 (basado en SVG), emplea una conexin persistente para el intercambio continuo entre el navegador y el servidor.
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 tecnologa en s, sino que es un trmino que engloba a un grupo de stas que trabajan conjuntamente.
Problemas e Inconvenientes
Las pginas con AJAX son ms difciles de desarrollar que las pginas estticas. 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 de la direccin (despus de un #).
Los motores de bsquedas no entienden JavaScript. La informacin en la pgina dinmica no se almacena en los registros del buscador.
Hay problemas usando Ajax entre nombres de dominios. Eso es una funcin de seguridad. El sitio con Ajax usa ms recursos en el servidor. Recomendacin: slo usar las peticiones necesarias en Ajax, no desarrollar todo el sitio en AJAX. Con esto garantizamos menos recursos del servidor.
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 ciegos u otras discapacidades.
Ventajas
Utiliza tecnologas ya existentes. Soportada por la mayora de los navegadores modernos. Interactividad. El usuario no tiene que esperar hasta que llegen los datos del servidor. Portabilidad (no requiere plug-in como Flash y Applet de Java) Mayor velocidad, esto debido que no hay que retornar toda la pgina nuevamente. La pgina se asemeja a una aplicacin de escritorio.
Desventajas
Se pierde el concepto de volver a la pgina anterior. Si se guarda en favoritos no necesariamente al visitar nuevamente el sitio se ubique donde nos encontrabamos al grabarla. La existencia de pginas con AJAX y otras sin esta tecnologa hace que el usuario se desoriente. Problemas con navegadores antiguos que no implementan esta tecnologa. No funciona si el usuario tiene desactivado el JavaScript en su navegador. Requiere programadores que conozcan todas las tecnologas que intervienen en AJAX. Dependiendo de la carga del servidor podemos experimentar tiempos tardos de respuesta que desconciertan al visitante.