长时间重置 setTimeout

setTimeout reset for long durations

我有一个 setTimeout 函数,它在 25 分钟后开始,resets/restarts 在下一个 25 分钟后开始。当我将测试脚本从 1500000 毫秒更改为更短的时间(例如 1000 毫秒)时,我的测试脚本显然可以正常工作;但是,当我(乏味地)每 25 分钟(1500000 毫秒)对其进行一次测试时,情况并非如此。有什么建议吗?

//    1000ms = 1s
//    60000ms = 60s         // 1 min
//    1500000 = 1500s       // 25 mins

var timer = null;
timer = setTimeout(sessionFunction, 1500000);

function sessionFunction() {
    alert('test');
    clearTimeout(timer); 

    timer = setTimeout(sessionFunction, 1500000);
}

//    1000ms = 1s
//    60000ms = 60s         // 1 min
//    1500000 = 1500s       // 25 mins

var timer = null;
timer = setTimeout(sessionFunction, 1500000);

function sessionFunction() {
    alert('test');
    clearTimeout(timer); 
    
    timer = setTimeout(sessionFunction, 1500000);
}

我建议更改脚本,使计时器每分钟触发一次,并在每次触发时保留一个计数器。一旦计数器达到 25,您就知道 25 分钟已经过去了。代码不会那么简单,但它确实避免了您遇到的计时器未触发的问题。