gpt4 book ai didi

Javascript 时钟/定时器中断

转载 作者:行者123 更新时间:2023-11-28 15:02:31 32 4
gpt4 key购买 nike

我计划构建多个计时器。我首先使用以下代码构建一个简单的时钟。

问题是,时钟将运行几分钟,网站就会崩溃,我认为这是由于内存不足。

当我console.log输出时。该命令似乎每秒运行多次。 console.log 行的计数器会显示 2、4、8、16、32、64 等,很快就会翻倍成天文数字。并且该网站将在几分钟内变得无响应。

是代码效率问题吗?或者使用java脚本每秒更新一些东西是不可行的。因为我打算在同一页面上制作多个计时器。 (大概5-10个左右)

我在谷歌浏览器上尝试过这个。

updateTime();
function updateTime() {
var d = new Date;
var hours = d.getHours();
var mins = d.getMinutes();
var secs = d.getSeconds();
var ampm = 'AM';
if (hours >= 12) {
ampm = 'PM';
}
if (hours > 12) {
hours = hours - 12;
}
formatted_time = hours + ':' + mins + ':' + secs + ampm;
//console.log(formatted_time);
$("#currenttime").html(formatted_time);
window.setInterval(updateTime, 1000);
}

最佳答案

您可能会耗尽内存,因为每个新的 setInterval 调用都会启动一个周期函数。

因此每次调用 updateTime 时,都会启动一个新的。这意味着 1 次调用、2 次调用、4 ... 2^n。 (60 秒后,您将有 2^60 个调用。这是一个 18 位十进制数)。只需 n 秒即可调用。您可能想使用 setTimeout

关于Javascript 时钟/定时器中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40432209/

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