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