当前位置: 首页 > 面试题库 >

如何使用setInterval和clearInterval?

邵昆琦
2023-03-14
问题内容
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() 一次而不创建一个反复调用的 循环drawAll我应该为此使用递归方法还是应该使用
clearInterval

还请告诉我使用clearInterval?谢谢 :)


问题答案:

setInterval设置一个 定期 计时器。它返回一个句柄,您可以将其传递clearInterval来阻止它触发:

var handle = setInterval(drawAll, 20);

// When you want to cancel it:
clearInterval(handle);
handle = 0; // I just do this so I know I've cleared the interval

在浏览器上,保证句柄是一个不等于0;
的数字。因此,0为“未设置计时器”设置一个方便的标志值。(其他平台可能返回其他值;例如,NodeJS的计时器函数返回一个对象。)

要将功能安排为
触发一次,请setTimeout改用。它不会继续射击。(它还会返回一个句柄clearTimeout,如果合适的话,可以在触发一次之前取消该句柄。)

setTimeout(drawAll, 20);


 类似资料:
  • 问题内容: 当我使用ajax从数据库中检索数据时,如果我从数据库中检索到的数据等于saveHere,则会出现此问题,它将再次循环直到与变量saveHere不匹配,它将冻结浏览器直到数据我检索到的结果不等于saveHere。 这是一个例子: 我真的需要建议。先感谢您。对不起,语法。 问题答案: 我不知道确切的情况或要实现的目标,但是我说您进行AJAX调用的方式非常危险,因为它有可能每秒不断地发出请求

  • 由于 JavaScript 是异步的,可以使用 setTimeout 和 setInterval 来计划执行函数。 注意: 定时处理不是 ECMAScript 的标准,它们在 DOM (文档对象模型) 被实现。 function foo() {} var id = setTimeout(foo, 1000); // 返回一个大于零的数字 当 setTimeout 被调用时,它会返回一个 ID 标

  • 问题内容: 如何使用Java脚本暂停和恢复setInterval()函数? 例如,也许我有一个秒表来告诉您您浏览网页的秒数。有一个“暂停”和“恢复”按钮。 clearInterval()在此处不起作用 的原因是,如果用户在第40秒和第800毫秒单击“暂停”按钮,则当他单击“恢复”按钮时,经过的秒数必须在之后增加1 200毫秒。如果我在计时器变量上使用clearInterval()函数(单击暂停按钮

  • 问题内容: 我正在阅读官方React网站上的教程。在有关生命周期方法的示例中,在componentDidMount方法下,将timerID设置为setInterval函数。 我的问题是,即使timerID已初始化,也从未在整个应用程序中调用过,在不显式调用应用程序中任何地方的timerID的情况下,应用程序如何工作。这是下面的代码。 问题答案: 是一个非零的数字值,它标识对的调用所创建的计时器。该

  • 有时我们并不想立即执行一个函数,而是等待特定一段时间之后再执行。这就是所谓的“计划调用(scheduling a call)”。 目前有两种方式可以实现: setTimeout 允许我们将函数推迟到一段时间间隔之后再执行。 setInterval 允许我们重复运行一个函数,从一段时间间隔之后开始运行,之后以该时间间隔连续重复运行该函数。 这两个方法并不在 JavaScript 的规范中。但是大多数

  • 本文向大家介绍浅谈JavaScript中setInterval和setTimeout的使用问题,包括了浅谈JavaScript中setInterval和setTimeout的使用问题的使用技巧和注意事项,需要的朋友参考一下 说到setInterval,就不得不提到setTimeout,二者都是用于定时执行某函数,区别在于setTimeout 只执行一次,而setInterval可以一直连续不断执行