JavaScript setInterval函数取决于时钟,而不是取决于负载

时间:2018-08-28 06:42:24

标签: javascript jquery datetime setinterval intervals

是否可以启动setInterval计数器时钟相关的而不是负载相关的? 假设每台计算机始终具有同一分钟的时钟。

如果我在12:01打开页面,并且希望设置2分钟的间隔,该间隔始终从12:00(或其他任何小时,但在:00分钟)开始。我希望事件在12:02、12:04等时触发,无论何时加载页面或页面是否在12:00打开。

答案也可以在jquery中。

1 个答案:

答案 0 :(得分:0)

您可以将增量带到下一个所需的插槽,并调整超时时间。

function out(k, v) {
    console.log(k.toString().padEnd(8), v.toString().padStart(15));
}

var time0 = new Date().getTime(),
    slot = 2 * 60 * 1000,
    time1 = Math.floor(time0 / slot + 1) * slot,
    delta = time1 - time0;

out('slot', slot);
out('delta', delta);
out('time0', time0);
out('time1', time1);

setTimeout(function () {
    var time2 = new Date;
    out('time2', time2.getTime());
    out('real', time2.getTime() - time0);
    console.log(time2.toISOString());
}, delta);