<div class="wait">Wait</div>
<div class="waitDownloadLink"></div>
$(document).ready(function()
{
var secondNormal = 40;
var refreshIntervalId;
refreshIntervalId = setInterval(function() {
secondNormal -= 1;
$(".wait").text(secondNormal);
}, 1000);
setTimeout(function() {
clearInterval(refreshIntervalId);
$(".waitDownloadLink").text("Click me to download");
}, secondNormal * 1000);
});
当我开始运行代码并停留在网页上时,代码似乎运行得非常完美(或接近)。然而,当我启动代码后立即浏览其他网页时,计时器卡在 12 - 18 秒之间,然后停止运行。为什么会出现这种情况?有什么办法可以解决这个问题吗?
最佳答案
浏览器通常会暂停或降低在不可见选项卡中运行的 Javascript 的线程优先级。我的猜测是,这是笔记本电脑和其他设备的一种节能措施,但多年来他们都这样做了。 This question对这个问题进行了极其彻底的调查。
解决方案是使用不会暂停的网络工作人员。请参阅the Mozilla documentation了解更多信息。
关于javascript - 为什么 setInterval() 在此代码中停止得太早?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29810342/