Foros del Web » Programando para Internet » Javascript »

bucle infinito

Estas en el tema de bucle infinito en el foro de Javascript en Foros del Web. Hola, Estoy haciendo una página en la que intento meter un elemento jquery y necesito que cada 2 minutos avise con un alert. Uso el ...
  #1 (permalink)  
Antiguo 04/02/2009, 06:52
 
Fecha de Ingreso: noviembre-2003
Mensajes: 35
Antigüedad: 20 años, 5 meses
Puntos: 0
bucle infinito

Hola,
Estoy haciendo una página en la que intento meter un elemento jquery y necesito que cada 2 minutos avise con un alert.
Uso el código:

var tiempo_aviso= 120000

for (i=1;i<=50;i++) {
setTimeout(alert("Aviso"),tiempo_aviso)
time = tiempo_aviso + 120000;
}

El problema es que haciéndolo con un bucle condiciono a que avise 50 veces.
Ya sé que son muchas ¿pero no hay una manera más elegante de hacerlo?
Pensaba hacer un bucle infinito del tipo for (; ; ) pero me da un fallo con un elemento jquery... no sé...
Os quería preguntar si se os ocurre alguna manera de ejecutar este elemento indefinidamente sin tener que cargar el servidor con un bucle.

Gracias a todos.
Salud.
  #2 (permalink)  
Antiguo 04/02/2009, 06:56
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
Puntos: 834
Respuesta: bucle infinito

Podrías usar setInterval en lugar desetTimeout.
  #3 (permalink)  
Antiguo 04/02/2009, 06:59
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: bucle infinito

Wo, lo que dice Panini5001 (nos cruzamos :))
  #4 (permalink)  
Antiguo 05/02/2009, 02:52
 
Fecha de Ingreso: noviembre-2003
Mensajes: 35
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: bucle infinito

Gracias por la respuesta venkman y Panino.
Es justo lo que necesitaba.
Sin embargo no consigo fijar los tiempos.
Es que quiero mostrar tres mensajes diferentes.
Si hago:
setInterval(alert("Aviso"),120000)

Me muestra perfectamente el alert sin tener que hacer un bucle, que era lo que quería.
Pero para mostrar los tres mensajes y que se vaya repitiendo pensaba hacer:
setInterval(alert("Aviso1"),360000)
setTimeout(setInterval(alert("Aviso2"),360000),120 000)
setTimeout(setInterval(alert("Aviso3"),360000),240 000)

sin embargo esto no funciona. Me muestra los tres mensajes a la vez en el segundo 36.
Los setInterval funcionan perfectamente pero pasa de los settimeout.

¿Alguien sabe por qué?

Gracias.
  #5 (permalink)  
Antiguo 05/02/2009, 02:54
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: bucle infinito

Código javascript:
Ver original
  1. setInterval(function() { alert("Aviso1") },360000);
  2. setTimeout(function() { setInterval(function() { alert("Aviso2")},360000) },120000);
  3. setTimeout(function() { setInterval(function() { alert("Aviso3")},360000) },240000);

Última edición por venkman; 06/02/2009 a las 07:35
  #6 (permalink)  
Antiguo 06/02/2009, 07:13
 
Fecha de Ingreso: noviembre-2003
Mensajes: 35
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: bucle infinito

Te agradezco mucho la ayuda venkman, pero verás...

Probando esta opción ejecuta casi al principio el aviso 2 y el aviso 3 (seguidos), y luego espera el tiempo que corresponde y va mostrando sólo el aviso 1 (después de 36 segundos cada vez), y el aviso 2 y 3 desaparecen.

De verdad que es raro este tema.
Parece sencillo pero no soy capaz de encontrar una solución.

En cualquier caso muchas gracias por vuestra ayuda.
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 12:37.