Comunidad PHPeros
Lenguajes => JavaScript => Mensaje iniciado por: lorddelioncourt en 04 de Diciembre de 2012, 01:49:31 am
-
Necesito de su ayuda, tengo una funcion con un setTimeout, lo que necesito es que cada 5 minutos se ejecute una funcion.
Lo hice de esta forma:
function contador(tiempo)
{
t = parseInt(tiempo);
if (t == 10000)
{
autosave();
t = 0;
}
else
{
t = t + 1000;
setTimeout(contador(t),1000);
}
esa funcion la llamo en el load asi contador('0');
pero no me funciona ya que se ejecuta la funcion autosave() al instante de haber cargado la pagina.
Me podrian ayudar???
Gracias de antemano.
-
Prueba cambiando:
setTimeout(contador(t),1000);
a
setTimeout('contador('+t+')',1000);
-
al parecer no es eso sino la funcion setTimeout ya que lo hice de la siguiente manera y aun asi no funciona
function contador()
{
autosave();
setTimeout("contador()",300000);
}
y en onload llamo a la funcion contador, pero no se respeta el intervalo de tiempo no se que estoy haciendo mal
-
En esa función está inmediatamente llamando a autosave, tienes que crear una función que inicie el timer y otra que se encargue de llamar autosave cada vez que termine el timer.
function autosave()
{
//función de autosave.
console.log("autosave");
}
/**
* @param minutes Cada cuantos minutos quieres
* que se llame la autosave.
*/
function autoSaveTimer(minutes)
{
var delay = parseInt((minutes*60)*1000);
var t = setTimeout("timer("+delay+")",delay);
t = delay = null;
}
function timer(delay)
{
autosave();
var t = setTimeout("timer("+delay+")",delay);
t = null;
}
window.onload = autoSaveTimer(1);
-
Por qué no cambias la función autosave añadiendo setTimeout(autosave, 300000); al final de dicha función?
-
Prueba con esto:
setTimeout('contador(t)', 1000);