Foros del Web » Programando para Internet » Javascript »

duda con setTimeout

Estas en el tema de duda con setTimeout en el foro de Javascript en Foros del Web. Bueno, vengo aquí por una duda que me surgió.... Bueno, miren, estoy desarrollando un juego vía Web, y tengo una función en Javascript que me ...
  #1 (permalink)  
Antiguo 10/02/2009, 17:03
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
duda con setTimeout

Bueno, vengo aquí por una duda que me surgió....

Bueno, miren, estoy desarrollando un juego vía Web, y tengo una función en Javascript que me actualiza un Div con información del jugador cada 60 segundos con la función setTimeout, ahora, me surgió una duda, esta funcion la lanzo simplemente al cargar la pagina y "automaticamente" se ejecuta cada 60 segundos, ahora que pasa yo si manualmente vuelvo a llamar a dicha funcion...

mi duda es..... en esta situacion se ejecuta dos veces cada 60 segundos, osea, el primer ciclo inica cuando carga la pagina, y el segundo ciclo inicia cuando llamo a la funcion manualmente, o digamos se resetea el tiempo de la primera y solo existe 1 ciclo?, no se si me eh explicado, pero me gustaria si alguien sabe como funciona realmente la funcion setTimeout ¿?
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #2 (permalink)  
Antiguo 10/02/2009, 18:29
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: duda con setTimeout

Pues que se duplica, hay que tener mucho cuidado con los temporizadores setTimeout(una sola vez) y setInterval(indefinidamente)

para tener algun control sobre ellos es aconsejable asignarlos a una variable:

tmp=set......()

para llegado el caso poder pararlos:

clear.....(tmp)

asi te evitas bucles infinitos y que el explorador se sobrecargue o se quede colgado.

para lo que requieres esta mejor indicado setInterval, ya que lo inicias al principio y no tienes, ni debes, volver a iniciarlo, a no ser que lo anules antes:

tmp=setInterval(), y lo anulas con clearInterval(tmp)
  #3 (permalink)  
Antiguo 10/02/2009, 19:35
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: duda con setTimeout

Interesante apunte programeitor, te agradezco tu explicación, en este caso, es necesario que este digamos en un bucle infinito, llamando a la función cada 60, PERO, solo requiero que se ejecute forzosamente cada 60, no quiero que una se ejecute por ejemplo 3 o 4 o un numero indefinido dentro de los 60 segundos (pues la carga seria excesiva no solo para el cliente, si no para el servidor), sin embargo no sabia de la existencia de "clearInterval", te agradesco mucho tu ayuda
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
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:45.