Foros del Web » Programando para Internet » Javascript »

Bucle Javascript con Ajax me cuelga el explorador hasta que termina

Estas en el tema de Bucle Javascript con Ajax me cuelga el explorador hasta que termina en el foro de Javascript en Foros del Web. Hola, chicos espero puedan ayudarme.. les cuento uqe tengo un bucle en javascript que levanta escribe en la db con ajax .. y tengo una ...
  #1 (permalink)  
Antiguo 30/06/2011, 08:09
 
Fecha de Ingreso: junio-2007
Ubicación: Argentina
Mensajes: 111
Antigüedad: 16 años, 10 meses
Puntos: 0
Exclamación Bucle Javascript con Ajax me cuelga el explorador hasta que termina

Hola, chicos espero puedan ayudarme.. les cuento uqe tengo un bucle en javascript que levanta escribe en la db con ajax .. y tengo una barra de progreso que se va llenando mediante el porcentaje completado. el problema es que mientras esta trabajando el bucle me cuelga el explorador.. hice la prueba poniendo alerts en el bucle para saber si la barra de progreso funcionaba y funciona bien.. hay alguna manera de hacer algo para uqe esto no pase.. que trabaje de fondo el bucle o que me deje seguir haciendo otras cosas mientras esta trabajando?

les paso y muestro el script:

Código PHP:
<script>
//------ AJAX -----\\
function getDataServer(urlvars){
     var 
_xmlhttp null;
     try{
         
_xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
     }catch(
expeption){
         
_xmlhttp = new XMLHttpRequest();
     }
     
_xmlhttp.open("GET",url varsfalse);
     
_xmlhttp.send(null);
     if(
_xmlhttp.status == 404alert("Url no valida");
     return 
_xmlhttp.responseText;
}
//------ FIN AJAX -----\\

var id;
var 
viejo;
var 
nuevo;
function 
activar (total){
//var activar = function (total){
    
for (x=1x<total+1x++){
//        alert(document.getElementById("ID_"+x).value);
        
id document.getElementById("ID_"+x).value;
        
viejo document.getElementById("OLD_"+id).value;
        
nuevo document.getElementById("PR_"+id).value;
        
        var 
consulta getDataServer("./_scripts/get_art.php","?ModPrecioID="+id+"&p_viejo="+viejo+"&p_nuevo="+nuevo);
        if(
consulta){
            
Porcentaje (xtotal);    
        }else{
            
alert("Error item "+id);
            
Porcentaje (xtotal);
        }
        
//break;
        //continue;
        //setTimeout(activar, 1000);

    
//-- fin for
}

function 
Porcentaje (xtotal){
    var 
porciento Math.round(100 total); 
    
ancho porciento 92 100//porcentaje * anche de imagen / 100 = pixels
    
document.getElementById('progresoIMG').style.width ancho "px";
    
document.getElementById('progresoTexto').innerHTML porciento "%";
}
</script> 
muchas gracias y espero que puedan ayudarme..
  #2 (permalink)  
Antiguo 30/06/2011, 12:05
Avatar de Tecna  
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 14 años, 3 meses
Puntos: 45
Respuesta: Bucle Javascript con Ajax me cuelga el explorador hasta que termina

Buenas,

eso ocurre porque estás haciendo una llamada síncrona que detiene la ejecución de la aplicación hasta que se obtiene la respuesta completa del servidor. Tienes que hacer una llamada asíncrona cambiando el tercer parámetro del método open por true.

Etiquetas: bucle, lento
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 04:28.