Foros del Web » Programando para Internet » Javascript »

while i javascript.

Estas en el tema de while i javascript. en el foro de Javascript en Foros del Web. Hola a todos, a ver si alguien puede resolver mi siguiente duda. Yo tengo una función que despues de hacer determinadas cosas actualiza una variable ...
  #1 (permalink)  
Antiguo 05/05/2008, 19:14
 
Fecha de Ingreso: enero-2008
Mensajes: 28
Antigüedad: 16 años, 3 meses
Puntos: 0
while i javascript.

Hola a todos, a ver si alguien puede resolver mi siguiente duda. Yo tengo una función que despues de hacer determinadas cosas actualiza una variable global. Mientras en otra función se llama a la función anterior i para poder continuar se debe esperar a que el valor de la variable global se sepa. A modo de ejemplo pongo el siguiente codigo.

Cita:
var global==false

funcion 1(){
blablablab
global=true;

}

funcion 2(){
var i=0;
funcion 1();
while(global==false){
i++;
}
continuaria funcion2

}
Mi problema reside en que si espero a que termine la funcion1 mediante un while este funciona bien solo si lo que tengo dentro del while es un alert(), mientras que si tengo i++ o algo similar, me sale un error de que el scrpit esta colgado, pero si li doy a continuar funciona. Alguien sabria solucionar esto si los alert()??

Gracias a todos.
  #2 (permalink)  
Antiguo 06/05/2008, 03:54
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: while i javascript.

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script>
var global=false;
var j=0;

function f1(){
while(j<=1000){
    document.getElementById("mostraJ").innerHTML=j;
    j++;
}
global=true;
return global;
}

function f2(){
if (f1()){
     document.getElementById("mostraI").innerHTML="Fin de F1, f2 puede seguir";
     <!--resto de instrucciones de f2-->
   }
}
</script>
</head>
<body>
<a href="#" onClick="f2()">Haz click</a><br />
J <span id="mostraJ"></span><br />
I <span id="mostraI"></span>
</body>
</html> 
Tu problema es de sincronización, alert detiene la ejecución en realidad no esta actuando el while aun que lo parezca. Con f1 en la condición forzamos que F2 no siga hasta que tiene el resultado de F1, en el ejemplo siempre seguirá puesto que F1 siempre responde true pero podria programarse distinto de manera que el resultado de f1 dependa de su codigo. Y a su vez reprogramar f2 de manera que haga una cosa u otra en función del resultado de f1.

Quim
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 15:40.