我正在试验Javascript中的setInterval和clearInterval方法,但我遇到了问题。我试图做的是在大多数时间内名义上每调用一次“x”秒,但在一定的时间间隔内运行更频繁。我已经附上了一些代码,这是迄今为止我所得到的一些不完整的代码,这是一个简单的概念验证 - 在本例中,每隔10秒钟显示一次分钟,否则在30到40分钟之间(如虚拟值以查看是否可以使其工作),显示屏每隔1秒更新一次。但我意识到我无法检查setInterval是否仍在运行以及如何重新启动它(作为“myVar”变量)。更改Javascript setInterval
<!DOCTYPE html>
<html>
<body>
<p id="demo">Just testing...</p>
<script>
var d = new Date();
myVar = setInterval(informUser, 10000);
function informUser()
{
if (d.getMinutes()>30 && d.getMinutes()<40) // every second
{
clearInterval(myVar);
mvVar = setInterval(informUser, 1000);
document.getElementById("demo").innerHTML = d.getMinutes();
}
else // else 10 seconds
{
document.getElementById("demo").innerHTML = d.getMinutes();
}
}
</script>
</body>
</html>
正如我说的代码是非常不完整的,因为我跑进了一堵砖墙!一旦我有了一些工作,我可以使它更复杂一点。 编辑:
感谢您对语法的意见,但这不是所有问题。 该代码目前的功能是每隔10秒将分钟输出到屏幕,直到达到31分钟。然后它停止定时器,并以1秒为间隔启动它。 9分钟后,代码停止,因为定时器未启动。
我希望做的是在“其他/其他10秒”部分查看myVar是否为空;如果是,则重新启动定时器,间隔时间为10秒。
请注意,'setInterval'函数的第一个参数应该是该函数的**引用**(而不是函数的调用,除非该调用返回对另一个函数的引用)。你应该使用'setInterval(informUser,X)' – Dekel
谢谢,我会在上面修改它(如果可以的话) – user3713442
你可以改变,但它也是你的问题的答案。在你自己的代码中更新它并检查。它应该解决你的问题。 – Dekel