Foros del Web » Programando para Internet » Javascript »

crear un setinterval con for

Estas en el tema de crear un setinterval con for en el foro de Javascript en Foros del Web. Hola, quiero crear un for, que tenga dentro un setinterval como un sleep, para parar un poco cada reiteracion, este es el codigo: for(i=0;i<10;i++){ setInterval('window.alert(\'Hello!\')', ...
  #1 (permalink)  
Antiguo 25/04/2011, 10:28
 
Fecha de Ingreso: marzo-2011
Mensajes: 106
Antigüedad: 13 años, 8 meses
Puntos: 4
crear un setinterval con for

Hola, quiero crear un for, que tenga dentro un setinterval como un sleep, para parar un poco cada reiteracion, este es el codigo:
for(i=0;i<10;i++){
setInterval('window.alert(\'Hello!\')', 2000);
}

El problema es que la primera vez funciona y despues de 2 segundos me muestra el hola, el problema es que despues vuelve a aparecer el hola sin esperar los 2 segundos, que puedo hacer para cambiar esto, gracias.
  #2 (permalink)  
Antiguo 25/04/2011, 10:41
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 5 meses
Puntos: 834
Respuesta: crear un setinterval con for

Probá así:
Código PHP:
<script type="text/javascript">
var 
ns={i:0}
ns.id=setInterval(function(){ns.i++;if(ns.i>=10){clearInterval(ns.id);}alert(ns.i);}, 2000);
</script> 
  #3 (permalink)  
Antiguo 25/04/2011, 10:42
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: crear un setinterval con for

buenas,
tecnicamente en javascirpt no hay forma de detener el proceso por un periodo. o sea, no hay nada similar a la funcion sleep. lo de tu caso se debe a que el ciclo for evalua todas las iteraciones de modo que terminas teniendo X cantidad de instrucciones programadas. un ciclo se evalua a la velocidad del reloj del procesador, por tanto las X instrucciones programadas tienen un tiempo de diferencia entre uno y otro a nivel de milisegundos. por eso es que te aparecen todas las alertas una tras otra.

por otro lado, no veo porque hacerlo de esa manera cuando setInterval es un programado persistente. es decir, el codigo se evaluara indefinidas veces por cada lapso indicado en el segundo parametro hasta que no se detenga con clearInterval.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: setinterval
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 00:00.