首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JS:启动计时器后,正确的计时方法是什么?

JS:启动计时器后,正确的计时方法是什么?
EN

Stack Overflow用户
提问于 2014-11-17 13:26:04
回答 1查看 45关注 0票数 0

我在做一个简单的反应计时器游戏。我唯一被卡住的事情就是计算回答的时间。

显示用户输入提示后,我将运行此函数:

代码语言:javascript
复制
var addScore = function () {
    if (playing) {
        setInterval(function () {
            score += 10;
        }, 10)
    }
};

因此,一旦玩家开始玩,这个函数就会启动,每10毫秒就会增加10分。我试着玩,有时我的分数显示5-7秒,即使我一回答答案就显示出来。是不是因为我加错了时间?

小提琴:http://jsfiddle.net/lee45276/f3s6waub/

EN

回答 1

Stack Overflow用户

发布于 2014-11-17 13:34:38

  • Are clearInterval-ing?因为如果不是这样,这些setInterval函数将会累积,每10ms将10添加到分数中,或者so.
    • setInterval不是很精确,所以可能会发生函数延迟超过10ms的情况。(不是像您的示例中那样,将10ms转换为5000ms,但有一点。)这是一个更好的想法,不涉及计时器:

var questionPosedTime =新日期();poseTheQuestion();onAnswerReceived(){ var answerReceivedTime =新日期();var answeringDelayInMilliseconds = answerReceivedTime - questionPosedTime;adjustScore(answeringDelayInMilliseconds);});

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26966094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档