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.
Eso nos da la idea de poder usar PHP de manera interactiva como si se tratase de Javascript, o sea podríamos combinar Javascript y PHP de manera que se ejecuten cuando se desee.
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
Así ya tenemos nuestro objeto XMLHttpRequest y ahora lo podremos usar para pedir Gets al servidor, eso lo hariamos de la siguiente simple forma:
xmlhttp.send();
Ahora nos falta como obtener la respuesta de nuestra petición, la forma mas facil y util es crear un tag <div> y volcar el contenido pedido sobre el, eso se haría de la siguiente forma:
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
La propiedad onreadystatechange se usa si nosotros pusimos true en el tercer parámetro del open() , puesto que ese parametro indica si queremos que la petición sea asincrona o sincrona, entonces true indicaría que lo queremos asincrono,
con eso creamos una función anonima que se ejecute cuando ocurra la petición y dentro ponemos el codigo que manejará la respuesta, en este ejemplo el div tiene un id que se llama myDiv, así tomamos la respuesta desde nuestro objeto XMLHttpRequest y lo introducimos dentro del div.
Algo que destacar es que la respuesta puede ser de dos tipos: Text o XML, la text es la que usamos en el ejemplo anterior y es simple de manejar por ser solo texto que se vierte en algún lugar, pero el tipo XML es mas util en casos de tener nuestro archivo en el servidor en formato xml, así podremos obtener información de manera ordenada por la propiedad de orden de xml.
La forma de manjar el tipo XML de la respuesta seria la siguiente:
xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
{
txt=txt + x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("myDiv").innerHTML=txt;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
{
txt=txt + x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("myDiv").innerHTML=txt;
Para mas información sobre AJAX visite la pagina: