JavaScript - SetInterval无法正常运行

Pau*_*aul 4 javascript

我得到了这段脚本(在本地运行):

<script>

last = 0;

function uploadnew(){

var randomnumber=Math.floor(Math.random()*6);
if(randomnumber != last){
    document.forms['f'+randomnumber].submit();
} else { uploadnew(); }

}

setInterval (uploadnew(), 1000*60*5);

</script>
Run Code Online (Sandbox Code Playgroud)

但似乎setInterval不工作/发送表单功能不起作用...

任何帮助将不胜感激!

谢谢!

Nic*_*ver 10

您需要setInterval()在函数上不带括号调用,如下所示:

setInterval(uploadnew, 1000*60*5);
Run Code Online (Sandbox Code Playgroud)

使用括号,您将立即调用它并指定result(undefined)在一个时间间隔上运行,而不是使用括号来传递函数本身,而不是函数的结果.


Ple*_*and 5

您需要在setInterval调用中删除()after uploadnew:

setInterval (uploadnew, 1000*60*5);
Run Code Online (Sandbox Code Playgroud)

在JavaScript中,函数是可以传递给其他函数的第一类对象.在此示例中,您希望将函数本身传递给setInterval,而不是先调用它然后传递其返回值.

使用setInterval ("uploadnew()", 1000*60*5);不建议,因为它是一个"隐藏"的形式的eval.Eval是邪恶的,如果你不需要,你就不应该使用它.