Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/08/2008, 09:34
mariano_donati
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 7 meses
Puntos: 9
Respuesta: Llamada asincrónica en intervalos de tiempo

Por Dios! ni bien posteo en foros del web siempre me inspira y puedo encontrar la solución, es decir, que hasta cuando no se reciben respuestas de sus magníficos usuarios acerca de un tema en concreto, foros del web funciona de cabala para resolver nuestros problemas ja. Resulta ser que estaba llamando sucesivas veces a la misma página sin haber terminado el proceso actual. Por lo tanto, agregando una variable que controle cuando se está llevando a cabo una petición y de acuerdo a esto enviar una nueva o no, pude solucionar el problema. La solución está en la variable async_complete. Les dejo el código:

Código PHP:
var obj;
var 
i;
var 
secs 0;
var 
async_complete true;
function 
send()
{
    
form document.getElementById('uploader');
    
form.target "iframe";
    
obj = new HttpRequest();
    
obj.setResponseType(3);
    
obj.oncomplete = function(){
        
async_complete true;
        
json obj.getResponse();
        if ( 
json )
        {
            switch ( 
json.stat )
            {
                case 
'copying':
                    
document.getElementById('progress').innerHTML json.value ' Transfer Rate: ' json.transfer_rate;
                    break;    
                case 
'finished':
                    
clearInterval(i);
                    
document.getElementById('progress').innerHTML 'Finished';
                    break;
                case 
'cancel':
                    
document.getElementById('progress').innerHTML 'Aborted by user';
                    break;
                default:
                    
document.getElementById('progress').innerHTML 'Loading...';     
            }                    
        }
    }
    
document.getElementById('progress').innerHTML 'loading...';
    
form.submit();
    
setInterval(update,1000);    
}
function 
update()
{
    
secs += 1;
    if ( 
async_complete )
    {    
        
async_complete false;
        
obj.loadAsync('progress.php');
    }

__________________
Add, never Remove