Foros del Web » Programando para Internet » Javascript »

flujo de programa con setTimeout y alert

Estas en el tema de flujo de programa con setTimeout y alert en el foro de Javascript en Foros del Web. Hola, a ver si alguien me puede ayudar. Tengo este código en JS: { ... Directions.sendDirections(7); setTimeout("startRoute()",5000); setTimeout("actualizar()",tiempoInicial); } function actualizar(){ alert('blahblah'); ... setTimeout("actualizar()",1000); } ...
  #1 (permalink)  
Antiguo 17/03/2009, 09:49
 
Fecha de Ingreso: diciembre-2007
Mensajes: 3
Antigüedad: 16 años, 5 meses
Puntos: 0
flujo de programa con setTimeout y alert

Hola,
a ver si alguien me puede ayudar.
Tengo este código en JS:

{
...
Directions.sendDirections(7);
setTimeout("startRoute()",5000);
setTimeout("actualizar()",tiempoInicial);
}

function actualizar(){
alert('blahblah');
...
setTimeout("actualizar()",1000);
}

Así funciona, pero si quito el alert('blahblah') de la funcion actualizar, ya no se ejecuta el código de la misma, porque hay una variable en la página que debería avanzar y no lo hace. Supongo que es que hay algo raro con el flujo de programa.
También si pongo lo siguiente:

alert('1');
setTimeout("startRoute()",5000);
alert('2');

los dos alert salen seguidos, es decir, sin que pasen los 5 segundos.
¿alguna idea?

saludos
  #2 (permalink)  
Antiguo 17/03/2009, 10:07
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: flujo de programa con setTimeout y alert

hola flash,

Hasta donde llegan mis conocimientos, setTimeout lo que hace es lanzar la función que le pasas en el primer parámetro ("startRoute()") después del tiempo marcado en el segundo parámetro (5000). Es decir, que no se puede entender como pausa entre una acción y otra (tipo sleep en VB.net). Mas no sé decirte pero creo que por ahí andan los tiros...
por eso sale el alert, cuando lo aceptas sale el otro y cinco segundos después se ejecuta la función.
Que yo conozca no hay ninguna forma de realizar una pausa pura y dura en javascript, solo con el setTimeout pero apuntando a alguna función. pero ya te digo que es lo que yo conozco, a lo mejor si hay forma...

salu2
  #3 (permalink)  
Antiguo 17/03/2009, 11:20
Avatar de jeybi  
Fecha de Ingreso: julio-2008
Ubicación: Mexico
Mensajes: 130
Antigüedad: 15 años, 9 meses
Puntos: 10
Respuesta: flujo de programa con setTimeout y alert

Efectivamente, los temporizadores no pausan la ejecucion del script, solo se 'regsitran' para ejecutarse despues del lapso de tiempo asignado. En realidad no puedes parar un script, pero se pued emular 'enganchando settimeouts'.

Un dato curioso sobre el metodo alert(), es que en todos los navegadores menos en google crhome (no se si safari tambien) un alert para la ejecucion del script pero NO detiene el conteo de los temporizadores, es decir, intenta poner un alert seguido de un settimeout con otro alert y veras de lo que te hablo.
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 03:28.