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, mejorando la interactividad, velocidad y usabilidad en las aplicaciones.
Ajax
es una tecnología asíncrona, en el sentido de que los datos adicionales se
solicitan al servidor y se cargan en segundo plano sin interferir con la
visualización ni el comportamiento de la página, aunque existe la posibilidad
de configurar las peticiones como síncronas de tal forma que la interactividad de la página se detiene hasta la
espera de la respuesta por parte del servidor.
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 dados que está basado en estándares abiertos
como JavaScript y Document Object Model (DOM)
¿ES AJAX UN LENGUAJE
DE PROGRAMACIÓN?
No, Ajax es un
conjunto de técnicas que se usan para lograr un objetivo y se basa en lenguajes
ya existentes como JavaScript.
Podríamos dar esta
definición de Ajax: “Ajax es un conjunto de métodos y técnicas que permiten
intercambiar datos con un servidor y actualizar partes de páginas web sin
necesidad de recargar la página completamente”.
Aunque Ajax se pensó
inicialmente para transferir datos en un solo formato (XML), actualmente Ajax
permite la transmisión de datos en múltiples formatos: XML, JSON, EBML, texto
plano, HTML, etc.
¿MEJOR USAR O NO USAR
AJAX?
Como todo, hay que
usar las cosas en su justa medida. Ajax bien usado puede ser muy útil para una
página web. Ajax mal usado puede ser un desastre para una página web.
¿Y ENTONCES AJAX QUÉ
ES Y PARA QUÉ SIRVE?
Veamos un esquema
para comprender mejor la idea que hay detrás del uso de Ajax. Este esquema lo
iremos comentando y comprendiendo a medida que avancemos en la explicación.
Realizar peticiones
al servidor y esperar respuesta puede consumir tiempo (el tiempo necesario para
recargar una página completa). Para agilizar los desarrollos web surgió Ajax
(inicialmente Asynchronous JavaScript And XML, aunque hoy día ya no es una
tecnología ligada a XML con lo cual no pueden asociarse las siglas a estos
términos), una tecnología que busca evitar las demoras propias de las
peticiones y respuestas del servidor mediante la transmisión de datos en
segundo plano usando un protocolo específicamente diseñado para la transmisión
rápida de pequeños paquetes de datos.
Con Ajax, se hace
posible realizar peticiones al servidor y obtener respuesta de este en segundo
plano (sin necesidad de recargar la página web completa) y usar esos datos
para, a través de JavaScript, modificar los contenidos de la página creando
efectos dinámicos y rápidos.
En el esquema
anterior vemos las ideas en torno a Ajax de forma gráfica. En la parte superior
hemos representado lo que sería un esquema de comunicación tradicional: el
cliente solicita una página web completa al servidor. El servidor recibe la
petición, se toma su tiempo para preparar la respuesta y la envía. El
resultado, una pequeña demora debido al tiempo que tarda en llegar la petición
al servidor, el tiempo que éste tarda en preparar la respuesta, y el tiempo que
tarda en llegar la respuesta más recargarse en el navegador.
En la parte inferior
vemos lo que sería un esquema de comunicación usando Ajax: el cliente tiene una
página web cargada (puede ser una página web completa, o sólo el esqueleto de
una página web). El cliente sigue trabajando y en segundo plano (de ahí que
hayamos dibujado con líneas punteadas las comunicaciones) le dice al servidor
que le envíe un paquete de datos que le hacen falta. El servidor procesa la
petición. Ahora la respuesta es mucho más rápida: no tiene que elaborar una
página web completa, sino sólo preparar un paquete de datos. Por tanto el
tiempo de respuesta es más rápido. El servidor envía el paquete de datos al
cliente y el cliente los usa para cambiar los contenidos que se estaban
mostrando en la página web.
Las ventajas que
proporciona Ajax son varias:
a) No es necesario recargar
y redibujar la página web completa, con lo que todo es más rápido.
b) El usuario no
percibe que haya demoras: está trabajando y al ser las comunicaciones en
segundo plano no hay interrupciones.
c) Los pasos que
antes podía ser necesario dar cargando varias páginas web pueden quedar
condensados en una sola página que va cambiando gracias a Ajax y a la
información recibida del servidor.
Como todo en la
vida, Ajax también tiene inconvenientes:
a) El usuario puede
perder la capacidad para hacer cosas que hacía con webs tradicionales puesto
que no hay cambio de página web. Por ejemplo usar los botones de avance y
retroceso del navegador o añadir una página a favoritos puede dejar de ser
posible. Esto en algunos casos no es deseable.
b) El desarrollo de
aplicaciones web se puede volver más complejo. Supongamos que antes tuviéramos
un proceso en el que avanzábamos a través de varias páginas web como 1, 2, 3.
De este modo la organización resulta sencilla. Si condensamos todo en una sola
página web: 1, escribir y depurar el código puede volverse más complicado. En
sitios complejos, puede ser muy difícil depurar errores.
c) Existen problemas
y restricciones de seguridad relacionados con el uso de Ajax. Hay que tener en
cuenta que por motivos de seguridad no todos los procesos se pueden realizar
del lado del cliente (que por su propia naturaleza es “manipulable”). También
existen restricciones de seguridad para impedir la carga de contenidos mediante
Ajax desde sitios de terceras partes.
d) La indexación para
los motores de búsqueda se ve dificultada, con lo cual nuestros sitios web
pueden perder visibilidad en los buscadores. No es lo mismo un contenido
“constante” o aproximadamente estático, fácilmente rastreable para un buscador,
que un contenido “cambiante” en función de la ejecución de JavaScript,
difícilmente rastreable para un buscador.
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
basados en Gecko como Mozilla, Mozilla
Firefox, SeaMonkey, Camino, K-Meleon, IceWeasel, Flock,Epiphany, Galeon y Netscape versión
7.1 y superiores
·
Navegadores
basados en WebKit como Google
Chrome de Google o Safari de Apple.
·
Microsoft Internet
Explorer para Windows versión
5.0 y superiores, y los navegadores basados en él
·
Navegadores
con el API KHTML versión 3.2 y superiores implementado,
incluyendo Konqueror versión 3.2 y superiores y el Web
Browser for S60 de Nokia tercera generación y posteriores
·
Opera versión 8.0 y superiores, incluyendo Opera
Mobile Browser versión 8.0 y
superiores.
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.



No hay comentarios.:
Publicar un comentario