Definición de AJAX
Definición de AJAX
Es decir, que podemos refinar un poco nuestra definición indicando que AJAX es una
técnica que permite, mediante programas escritos en Javascript, que un servidor y un
navegador intercambien información, posiblemente en XML, de forma asíncrona.
En esencia, AJAX permite que una página web que ya ha sido cargada solicite nueva
información al servidor. Dicho así, no supondría en realidad ningún invento novedoso.
Una página web que contiene un enlace permite que se solicite al servidor nueva
información cada vez que se pincha dicho enlace. Una página web que contiene un
formulario envía información al servidor y recibe de él nueva información, normalmente la
respuesta ante los datos que se han enviado. En ambos casos hay una conexión entre el
cliente y el servidor.
Por ejemplo, podemos pedirle al servidor que nos indique qué hora tiene y mostrar dicha
hora en el cliente, en una capa dedicada sólo para visualizar este dato. De esta forma, el
usuario podría ver la hora correcta que hay en el servidor (posiblemente sincronizada por
NTP) y esta sería la misma para todos los usuarios conectados a dicho servidor, sin tener
en cuenta la hora que tengan en su ordenador (posiblemente errónea o susceptible de ser
modificada por el usuario). Si actualizamos la hora cada minuto, sin usar AJAX,
tendremos que recargar toda la página cada 60 segundos. Sin embargo, con AJAX,
simplemente actualizaremos la capa que hemos dedicado a imprimir la hora sin necesidad
de alterar el resto de la página.
<!--
- FICHERO ajax.2.1.1.html
- ======================
-->
<html>
<head>
<title>Primer ejemplo con AJAX</title>
</head>
<body>
<h2>Primer ejemplo con AJAX</h2>
<script>
// 1. Instanciamos el objeto XMLHttpRequest
conexion= new XMLHttpRequest();
// 2. Indicamos un manejador de eventos para cuando llegue la información
conexion.onreadystatechange=function() {
if (this.readyState == 4 ) {
// Va mostrar la información obtenida en la llamada
alert( this.responseText );
}
}
// 3. Hacemos la llamada
conexion.open("GET", "hola_mundo.txt" );
conexion.send(null);
</script>
</body>
</html>
FICHERO hola_mundo.txt
======================
Hola mundo!
Pasemos a diseccionar poco a poco el código del ejemplo anterior. En primer lugar hemos
de crear un objeto XMLHttpRequest:
El nombre ya es bastante aclaratorio con respecto a la misión del objeto: sirve para hacer
peticiones de información que llegará en formato XML a través del protocolo HTTP.
El objeto, al que hemos llamado conexion actúa como un “mini-navegador” dentro del
cliente en el que se ha cargado nuestra página web.
Seguidamente, y para poder obtener información del servidor, abrimos una conexión y
le enviamos los datos necesarios para completarla. En este caso, la conexión es de tipo
GET, intenta recuperar un fichero llamado hola_mundo.txt y no necesita muchos más
datos, por lo que enviamos la petición sin datos adicionales.
// 3. Hacemos la llamada
conexion.open("GET", "hola_mundo.txt" );
conexion.send(null);
Por motivos de seguridad, la URL que indiquemos en la llamada al método open() debe
pertenecer obligatoriamente al mismo servidor desde el cual se ha descargado la página
web que está realizando la llamada. Es decir, aunque supiéramos que el fichero “hola
mundo.txt” está disponible en la URL http://www.otrodominio.es/hola_mundo.txt, no
podremos hacer llamadas a él con AJAX si nuestra página web no está alojada también
en dicho dominio. En el siguiente tema, al hablar del formato XML, veremos cómo
podemos usar información de terceros sitios en el nuestro usando AJAX.
El ejemplo anterior es, posiblemente, el ejemplo más conciso que podemos escribir para
comprobar el funcionamiento de AJAX. No obstante, la programación de sitios web
utilizando AJAX requiere de un mayor conocimiento del objeto XMLHttpRequest, así como
de los atributos y métodos que posee. En el siguiente post “¿qué es AJAX (II)?”, veremos
un poco más sobre él y cómo solucionar los problemas de incompatibilidad con el
navegador Internet Explorer.
Curso Completo:
http://librosweb.es/libro/ajax/capitulo_1.html