我需要在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>
答案 0 :(得分:3)
您的数学有点过时了。 103551/5000 = 20.7102ms
1000ms = 1s,5s = 5000ms,5000 / 20.7102 = 240次迭代。
您要求解的方程为5000 / x = numIterations
所以x = 5000 / numIterations
注意:大多数浏览器都有可以在setInterval()中设置的最小数目,因此您可能需要每个循环增加1个以上才能在5秒内计数到103551。由于这是一个奇怪的特定问题,因此我猜测这可能是一项任务,因此将省略此答案的完整解决方案。祝你好运!