Foros del Web » Programando para Internet » Javascript »

Como invocar una funcion cada cierto tiempo?

Estas en el tema de Como invocar una funcion cada cierto tiempo? en el foro de Javascript en Foros del Web. Hola tengo un problema el cual no e podido resolver, lo que quiero hacer es en una pagina mandar llamar a una función cada 10 ...
  #1 (permalink)  
Antiguo 07/03/2008, 11:24
 
Fecha de Ingreso: enero-2008
Mensajes: 40
Antigüedad: 16 años, 3 meses
Puntos: 0
Como invocar una funcion cada cierto tiempo?

Hola tengo un problema el cual no e podido resolver, lo que quiero hacer es en una pagina mandar llamar a una función cada 10 segundos, que se mantenga así hasta que cierren la pagina,

Function hola(){
....
}

Y quiero que esa función se este invocando cada 10 segundos en la misma pagina sin que esta se recarge, se los agradecería mucho se me ayudan con este problema que no puedo resolver.

Un saludo.
  #2 (permalink)  
Antiguo 07/03/2008, 14:36
Avatar de TurKa  
Fecha de Ingreso: enero-2003
Ubicación: Gerli, Avellaneda
Mensajes: 543
Antigüedad: 21 años, 3 meses
Puntos: 4
Re: Como invocar una funcion cada cierto tiempo?

Hola elgame:

Puedes utilizar la función
Código:
SetTimeout(Nombre_funcion, milisegundos);
Esta función la puedes colocar tras finalizar la función que deseas invocar o por ejemplo, crear una nueva función que se encargue de eso, y llamarla en el evento onLoad de la página:

Código:
function Repetir() {
	setTimeout(hola, 10000); //multiplicas la cantidad de segundos por mil
}
Y luego en el body:

Código:
<body onLoad="Repetir()">
Espero que te sirva.

Saludos!
__________________
Programación LAMP con Scrum y XP
www.eugeniabahit.com.com.ar
  #3 (permalink)  
Antiguo 07/03/2008, 16:10
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Como invocar una funcion cada cierto tiempo?

Hola:

Para que la función se ejecute constantemente es mejor usar setInterval()...

setInterval("hola()", 10000);

La función como cadena y con su juego de paréntesis y el segundo parámetro el número de milisegundos.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 07/03/2008, 17:19
Avatar de TurKa  
Fecha de Ingreso: enero-2003
Ubicación: Gerli, Avellaneda
Mensajes: 543
Antigüedad: 21 años, 3 meses
Puntos: 4
Re: Como invocar una funcion cada cierto tiempo?

Hola caricatos!!! ¿Qué tal?
¿Puedo aprovechar para hacerte una pregunta así me desaznas?

¿En qué radica la diferencia de setTimeou y setInterval?
A simple vista resulta mucho más lógico utilizar SetInterval que setTimeout (digo, por el nombre). Pero quería saber la diferencia para ver cuando es conveniente usar una o la otra.

Mil gracias de antemano

Un abrazo!
__________________
Programación LAMP con Scrum y XP
www.eugeniabahit.com.com.ar
  #5 (permalink)  
Antiguo 07/03/2008, 18:12
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Como invocar una funcion cada cierto tiempo?

Hola TurKa:

Creo que con una simple búsqueda solucionarás tu duda, o mejor, con un manual. Además, buscando el título de tu post en google se da con la solución fácilmente.


Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #6 (permalink)  
Antiguo 08/03/2008, 01:33
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Como invocar una funcion cada cierto tiempo?

Hola TurKa :

Aunque el amigo derkenuke (¡Hola !) tiene razón en que una búsqueda simple puede ser suficiente, me sale la "vena pedagoga".

En ambos casos el primer valor es lo mismo, una cadena y supongo que la forma "nativa" de procesarlo es con eval:

//supuesta forma nativa:
function setTimeout(accion, retardo) {
sleep(retardo); // primitivas desconocidas para pasar el rato, fumarse un cigarro, etc.
eval(accion);
}

El segundo parámetro también es exactamente igual, es el número de milisegundos de espera.

La diferencia está en que setTimeout solo hace el retardo una vez y si quisiesemos una segunda "accion" tendríamos que insertar otra sentencia setTimeout() en la misma función que se llama.

function accion() {
// aquí las cosas naormales de la función
setTimeout("accion()", 10000);
}

Ambos se pueden cancelar con clearInterval/clearTimeout, así que se puede simular el setInterval con setTimeout de la manera que expuse antes, y se puede simular setTimeout con setInterval, si ponemos en la acción una instrucción clearInterval dentro de la acción, pero para usar esas instrucciones debe asignarse antes esa instrucción "setXXXXXX()" a una variable global para que sea accesible.

Sobre su uso, indudablemente un reloj es mejor implementarlo con setInterval, pero relacionado con el reloj, una cuenta regresiva (o cualquier otro sistema de conteo "acotado" puede usarse con ambos sistemas, pero con setTimeout no es necesaria esa asignación.

No sé si sera suficiente...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 07:08.