setInterval在刷新时执行

时间:2013-07-10 22:26:25

标签: javascript jquery

这可能是一个愚蠢的问题,但我有一个setInterval,每30秒执行一次保存。

setInterval(SaveContent(true), 30000);

我也试过

window.setInterval(SaveContent(true), 30000);

setTimeout(setInterval(SaveContent(true), 30000), 30000);
window. setTimeout(setInterval(SaveContent(true), 30000), 30000);

我不确定为什么setInterval在刷新页面时执行SaveContent。我想假装在做任何事情之前等待30秒?

3 个答案:

答案 0 :(得分:3)

尝试:

setInterval(function() {SaveContent(true)}, 30000);

您不能将参数直接传递给您调用的函数,因此需要将其嵌入到匿名函数中。

在函数名称调用它之后

()并返回一个值,在本例中为setInterval函数。

您可以选择以这种方式调用它:

setInterval(SaveContent, 30000);

然后在你的函数中:

function SaveContent(b) {

    if (typeof b === 'undefined') b = true;  //defaults to true

    // ...

}

答案 1 :(得分:3)

您希望将函数传递给setInterval

setInterval(function(){ SaveContent(true); }, 30000);

现在的方式是,您立即执行SaveContent(true),然后将其返回值传递给setInterval

答案 2 :(得分:0)

在jQuery中,您可以使用$.proxy通过预定义参数传递函数:

setInterval($.proxy(SaveContent,null,true), 30000)