Foros del Web » Programando para Internet » Javascript »

ajax y progreso

Estas en el tema de ajax y progreso en el foro de Javascript en Foros del Web. Buenas tardes a todos, Escribo por aca porque tengo una duda que me esta volviendo loca. Resulta que tengo una función en js llamada download ...
  #1 (permalink)  
Antiguo 11/11/2016, 13:34
 
Fecha de Ingreso: enero-2009
Mensajes: 178
Antigüedad: 13 años, 5 meses
Puntos: 2
ajax y progreso

Buenas tardes a todos,
Escribo por aca porque tengo una duda que me esta volviendo loca.
Resulta que tengo una función en js llamada download que crea un archivo excel que posteriormente es descargado a través de un appendChild(). Resulta que paralelamente mientras se crea el archivo (tarda aprox 3 min en crearse) consulto a una funcion llamada getProgress que tiene el progreso actual de la descarga. Por alguna extraña razón getProgress aunque esta dentro de la función setinterval, éste no se actualiza ya que se queda esperando a que termine el excel de crearse y descargarse para luego actualizarse. No entiendo la razón.
Necesito que tanto la funcion getProgress y la funcion download se ejecuten en paralelo y no uno despues de otro.

Alguna idea?
pd// ambas funciones retornan el valor correcto sin error.

Código PHP:
function getProgress()
    {
         
        $.
ajax({
            
urlRouting.generate('getProgresoTotal') + '/' project '/' file,
            
cachefalse,
            
asynctrue,
            
success: function (data) { 
                $(
'#progreso').text(data);
            },
            
error: function () { 
                $(
'#progreso').text('error');
            }
        });
    }
    function 
download()
    {

        $(
'#modal-wizard').show();
         
         var 
url Routing.generate('download_data') + '/' project '/' file '/' 20 '/' "2km";
         var 
elemIF document.createElement("iframe");
         
elemIF.src url;
         
elemIF.style.display 'none';
         
document.body.appendChild(elemIF);
         
         var 
inter window.setInterval(function () { 
         
getProgress();
         if (
elemIF.contentWindow.document.readyState === "complete") {
         
window.clearInterval(inter);
         $(
'#modal-wizard').hide();
         
clearInterval(refreshIntervalId);
         }
         }, 
100); 
         
         
window.onbeforeunload null

 
 
    } 
Muchas Gracias.

Etiquetas: ajax, excel
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:31.