Buenas!
Supongo que usas jquery... yo de jquery no lo llevo muy al día, pero con javascript se puede hacer lo mismo.
Tienes que verificar el estado de la petición. Te dejo un código estándar en JS:
Código:
function createREQ(){
try{
req=new XMLHttpRequest();
}catch(err1){
try{
req=new ActiveXObject("Msxml2.XMLHTTP");
}catch (err2){
try{
req=new ActiveXObject("Microsoft.XMLHTTP");
}catch (err3){
req=false;
}
}
}
return req;
}
function requestGET(url, query, req){
myRand=parseInt(Math.random()*99999999);
req.open("GET",url+'?'+query+'&rand='+myRand, true);req.send(null);
}
function requestPOST(url, query, req){
req.open("POST", url, true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');req.send(query);
}
function doAjax(url, query, reqtype, getxml, divToChange, vals){
var myreq=createREQ();
myreq.onreadystatechange=function(){
if(myreq.readyState==4){
if(myreq.status==200){
var item=myreq.responseText;
if(getxml==1){
item=myreq.responseXML;
}
print(item, divToChange);
}
}else{
printWait(vals);
}
}
if(reqtype=='post'){
requestPOST(url, query, myreq);
}else{
requestGET(url, query, myreq);
}
}
La función "print" escribe los valores finales, mientras que "printWait" se muestra mientras carga. Es ahí donde tendrás que poner la imágen de carga.
Por cierto, para que tu tema quede zanjado más rápido y con mayor calidad, postea en el subforo adecuado...
Saludos!