即使笔记本电脑被暂停,如何等到一定时间?

时间:2015-04-15 17:19:11

标签: javascript timer

我正在编写一些管理预定事件的JavaScript。该事件到期时页面应该更新。

我目前正在使用window.setTimeout(cb, scheduledTime - now)。这通常很好,但如果笔记本电脑暂停,则延迟时间太长。

示例:

  1. 我安排明天上午9点的活动。
  2. 我让笔记本电脑入睡。
  3. 第二天上午9点,我恢复了笔记本电脑。该事件现在应该到期,但我的代码仍然在睡觉。
  4. 迟到几个小时,我收到了有关此事件的通知。
  5. 我可以每60秒左右进行一次轮询,但有一些方法可以:

    • 设置暂停未延迟的超时或
    • 系统恢复时会收到通知吗?

    (显示问题的测试脚本:https://stackoverflow.com/a/29656299/50926

1 个答案:

答案 0 :(得分:0)

您可以每隔一秒检查当前时间,如果是所需数量(例如上午9:00),请提醒:

function alert_time(month, day, year, hour, minute){
    currentDate = new Date();
    if(currentDate.getMonth() == month && currentDate.getDate() == day && currentDate.getYear() == year && currentDate.getHour() == hour && currentDate.getMinute() == minute){
        alert("Time up!")
    else{
        setTimeout(function (){alert_time(month, day, year, hour, minute);}, 10);
}