1

这可能是一个愚蠢的问题,但我有一个 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 秒?

4

3 回答 3

3

尝试:

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

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

() 在函数名调用它并返回一个值之后,在本例中为setInterval函数。

或者,您可以这样称呼它:

setInterval(SaveContent, 30000);

然后在你的函数中:

function SaveContent(b) {

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

    // ...

}
于 2013-07-10T22:27:17.640 回答
3

您想将函数传递给setInterval

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

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

于 2013-07-10T22:27:26.213 回答
0

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

setInterval($.proxy(SaveContent,null,true), 30000)
于 2013-07-10T22:30:32.010 回答