gpt4 book ai didi

JavaScript setInterval 和 setTimeout 计时问题

转载 作者:行者123 更新时间:2023-12-03 09:38:44 25 4
gpt4 key购买 nike

请参阅以下 JavaScript 代码:

var cis_current_time = 0;

setInterval(function() {
cis_current_time += 1;
},1);

$("#timingInfo").html(cis_current_time);
setTimeout(function() {
$("#timingInfo").html($("#timingInfo").html() + ', ' + cis_current_time);
},1000);

结果我除了得到 0, 1000,但它返回 0,接近 200 的数字

请检查fiddle.

这种行为的原因是什么?

最佳答案

setIntervalsetTimeout 由于其设计原因可能不精确。

它们由浏览器引擎执行,这意味着浏览器在某些情况下可以限制它们。举个例子,如果您的浏览器只使用一个 JavaScript 进程,由于您所使用的核心当前面临压力,它们可能会受到限制,或者可能会比您定义的时间间隔更多。

通过使用多线程 JavaScript 可以对其进行一些改进,但无论如何 - 它们不会 100% 准确。

setInterval 仅保证在给定时间段后执行/调用。不是在准确的时间。每个间隔都可能存在差异。

关于JavaScript setInterval 和 setTimeout 计时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31248411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com