使用 setInterval 和clearInterval 管理计划函数
考虑以下代码片段:
function doKeyDown(event) { switch (event.keyCode) { case 32: /* Space bar was pressed */ if (x == 4) { setInterval(drawAll, 20); } else { setInterval(drawAll, 20); x += dx; } break; } }
目标是仅调用一次drawAll函数,而不是创建重复调用的循环
使用clearInterval停止重复执行
setInterval建立一个循环定时器,定期调用指定的函数。要停止其执行,我们可以使用clearInterval。它的工作原理如下:
var handle = setInterval(drawAll, 20); // When you want to stop it: clearInterval(handle); handle = 0; // Indication of an uncleared interval
在浏览器上,句柄保证为非零数值。因此,设置handle = 0作为一个方便的标志来指示间隔已被清除。
安排一次性函数调用
如果意图是仅执行一次函数,请考虑使用 setTimeout 代替。此函数安排在指定的时间间隔后调用一个函数,但此后不会继续触发它。它还返回可能取消的句柄。
setTimeout(drawAll, 20);
以上是如何确保使用'setInterval”调用的函数仅执行一次?的详细内容。更多信息请关注PHP中文网其他相关文章!