执行javascript然后每60秒刷新一次脚本

时间:2014-07-29 13:22:45

标签: javascript

我有这个功能

function ReFresh() {
    // myScript
    setTimeout('ReFresh()', 60000);
}

这会在60秒后执行myScript,但我不希望这样。我想要的是立即执行myScript,然后每60秒重复一次myScript。

2 个答案:

答案 0 :(得分:2)

所以请手动调用ReFresh

function ReFresh() {
    // myScript
    setTimeout(ReFresh, 60000);
}
ReFresh();

同时避免使用string作为setTimeout的参数,而是传递函数引用。

答案 1 :(得分:2)

您可以使用立即调用的函数:

(function ReFresh() {
    setTimeout(ReFresh, 60000);
}());

DEMO

另外:尽量不要将字符串传递给setTimeout(有时称为"implied eval"),只需传递函数名称。

这是一个使用clearTimeout的版本:

var num = 0, timer;

(function myScript() {
  if (num === 10) {
    clearTimeout(timer);
  } else {
    console.log(num);
    num++;
    timer = setTimeout(myScript, 1000);
  }
}());

DEMO