gpt4 book ai didi

JavaScript时钟: time interval conflicts

转载 作者:行者123 更新时间:2023-12-03 08:47:45 24 4
gpt4 key购买 nike

嗨,我是编程新手,正在研究 JavaScript 时钟。我让它根据是偶数还是奇数分钟来改变背景颜色,并且它每小时改变一次文本颜色。但是,我在整合第三个任务时遇到了麻烦:我试图让它每五分钟更改为随机颜色,从而覆盖偶数或奇数语句。因此,第 1 分钟:奇数,第 2 分钟:偶数,3:奇数,4:偶数,5:随机颜色。

由于每五分钟更改背景颜色的功能( lines 75 to 83 )是按时间间隔设置的,因此与获取日期设置的时间间隔( line 71 )冲突。

就目前情况而言,任务 2 和 3 的效果在任务 1 被注释掉之前是不可见的。有没有办法将任务 1 与第 11-24 行的 if/else 语句结合起来,以便我的所有任务可以同时运行?

最佳答案

使用单个计时器函数来执行所有事件。为了获得更准确的计时,请将计时器设置为每 100 毫秒执行一次并维护一个计数器。根据计数器值,您可以以不同的时间间隔执行特定任务,并检查时间间隔是否重叠。当计数器达到您需要跟踪的最大间隔时,可以重置计数器。

这是一个示例:

var counter = 0;
var oldsec = 0;
setInterval(function(){timerInt()}, 100);

function timerInt(){
// Read system clock and get seconds
if (seconds <> oldsec) {
// Update clock time here and set oldsec=seconds
}


// Execute other tasks
if (counter % 3000 == 0) { // Executes once every 5 minutes (300*10)

}
else if (counter % 1200 == 0) { // Executes once in 2 minutes (120*10)

}
else if (counter % 600 == 0) { // Executes once a minute (60*10)

}

counter += 1;
if (counter == 3000) counter = 0;
}

您可以使用ifelse来控制要执行的任务。您的时钟秒更新也将更加准确,并且不会像 1000 毫秒计时器那样“跳过”秒。

关于JavaScript时钟: time interval conflicts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32814518/

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