Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/09/2009, 05:57
Avatar de pempas
pempas
 
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 11 meses
Puntos: 6
Ir recibiendo respuestas de la función Ajax

Buenas,

Tengo una duda que siempre me ha estado mareando, el tema es que me gustaría hacer una función en Ajax que me fuese devolviendo datos, es decir, tengo un proceso muy largo de importación de datos mediante ficheros XML y el problema es que no puedo ir dándole respuestas al usuario, la función Ajax es esta:

Código PHP:
function iniciasincroauto(mayorista){
  var 
ajax1=nuevoAjax(); // Esta función crea el objeto de Ajax
 
  
document.getElementById("botonsincroauto").disabled=true;
  
document.getElementById("divbotong").innerHTML="<center><img src='/img/general/cargando_grande.gif' align='absmiddle'> Cargando, espere...</center>";
 
  
ajax1.open("GET""/ajax/importa.asp?clase=guardaauto&mayorista="+mayoristatrue);
 
  
ajax1.onreadystatechange=function() 
  {
   if (
ajax1.readyState==3)
   {
    
document.getElementById("areaproceso").value=unescape(ajax1.responseText);
   }else if(
ajax1.readyState==4){
    if(
ajax1.status==200){
     
document.getElementById("botonsincroauto").disabled=false;
     
document.getElementById("divbotong").innerHTML="";
     
document.getElementById("articulosnuevosg").innerHTML=unescape(ajax1.responseText);
 
    }else{ 
// Error
        
alert("Error:"+ajax.status);
    }
   }
  }
  
ajax1.send(null);
 } 
En teoría pensaba que el "readyState==3" iría devolviendo datos, pero no es así, los devuelve cuando termina la función.

Como pueden ver, llamo a una función en ASP donde realizo la importación y la idea es mostrar en el area de texto los diferentes estados que voy mostrando al usuario, algo así:

- Iniciando importación
- Conectado con el fichero externo
- Lectura del fichero externo
- Importados X datos...
- Importación finalizada

¿Entienden?, en problema es ese, que no puedo ir sacando esta información y no se me ocurre como hacerlo, ¿alguna idea?

Por más que investigo no encuentro nada sustancial para esto.

Muchas gracias!