P谩ginas que utilizan Ajax
En una p谩gina que utilice Ajax, frente a un evento determinado, por ejemplo que el usuario presione un bot贸n o que ingrese texto en un campo, la p谩gina:
Crea un requerimiento HTTP.
Registra una funci贸n que atender谩 la respuesta del requerimiento HTTP una vez que el requerimiento sea atendido.
Opcionalmente, configura un cursor de espera o alg煤n otro mecanismo de feedback para que el usuario sepa lo que debe esperar.
Ejecuta el requerimiento HTTP.
Llama a la funci贸n que fue registrada una vez que se recibe la respuesta al requerimiento.
Ajax funciona en la mayor铆a de los browsers modernos, aunque la forma de crear el requerimiento es ligeramente distinta en explorer y en el resto de los browsers. Para crear el requerimiento, en vez de detectar qu茅 tipo de browser es (que no es lo recomendado), detectamos si existe una funci贸n o no:
var req = false;
if (window.XMLHttpRequest) {
聽req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
聽req = new ActiveXObject(«Microsoft.XMLHTTP»);
}
Ahora la variable req contiene un XMLHttpRequest que usaremos para ejecutar la petici贸n http. Para ejecutar el requerimiento podemos usar esta funci贸n:
function ajaxRequest(url, parameters, callback) {
聽req.open('GET', url, true);
聽req.onreadystatechange = callback;
聽req.send(parameters);
}
La funci贸n que hemos creado ajaxRequest recibe una url a la que ser谩n pasados un conjunto de par谩metros contenidos en la variable parameters, estos 煤ltimos corresponden al texto que va despu茅s del signo de interrogaci贸n '?' cuando usamos m茅todo GET. Adem谩s se recibe un puntero a una funci贸n (el «callback») que recibir谩 los resultados de la petici贸n.
La funci贸n que usamos XMLHttpRequest.open() recibe en este caso tres par谩metros:
method - El m茅todo, usualmente GET o POST.
url - La direcci贸n de la p谩gina que queremos cargar.
sync? - Un flag que indica si la llamada es s铆ncrona respecto al resto de los scripts que se ejecutan en la p谩gina. Si se pone en true, entonces el resto de los scripts esperar谩n que la petici贸n retorne. Si se pone en false, la petici贸n no bloquear谩 el resto de los scripts, ejecutandose as铆ncronamente.







