在5秒内从0增加到一个值

时间:2018-07-11 14:54:24

标签: javascript html

我需要在5秒内将值从0增加到103551。以下是我使用的逻辑。但这并没有在5秒内增加到所需值

var counter = 0;
var el = document.getElementById('seconds-counter');

function incrementSeconds() {
    counter += 1;
    el.innerText = "Processing " + counter + " execution records";
    if(counter == 103551) {
        console.log(new Date());
    }
}

console.log(new Date());
var time = 103551/5000;
var cancel = setInterval(incrementSeconds, time);

HTML

<div id='seconds-counter'> </div>

1 个答案:

答案 0 :(得分:3)

您的数学有点过时了。 103551/5000 = 20.7102ms

1000ms = 1s,5s = 5000ms,5000 / 20.7102 = 240次迭代。

您要求解的方程为5000 / x = numIterations

所以x = 5000 / numIterations

注意:大多数浏览器都有可以在setInterval()中设置的最小数目,因此您可能需要每个循环增加1个以上才能在5秒内计数到103551。由于这是一个奇怪的特定问题,因此我猜测这可能是一项任务,因此将省略此答案的完整解决方案。祝你好运!