Javascript 如何等到一个给定的时间,即使笔记本电脑是暂停的?

Javascript 如何等到一个给定的时间,即使笔记本电脑是暂停的?,javascript,timer,Javascript,Timer,我正在编写一些JavaScript来管理计划的事件。该页面应在事件到期时更新 我目前正在使用window.setTimeout(cb,scheduledTime-now)。这在正常情况下可以正常工作,但如果笔记本电脑被挂起,则延迟时间太长 例如: 我安排了明天上午9点的活动 我把笔记本电脑放在睡觉的地方 第二天早上9点,我恢复了笔记本电脑。事件现在应该到期了,但我的代码仍处于休眠状态 晚了几个小时,我得到了这件事的通知 我可以每60年代左右进行一次民意调查,但有没有办法: 设置不因挂起而延迟的

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

我目前正在使用
window.setTimeout(cb,scheduledTime-now)
。这在正常情况下可以正常工作,但如果笔记本电脑被挂起,则延迟时间太长

例如:

  • 我安排了明天上午9点的活动
  • 我把笔记本电脑放在睡觉的地方
  • 第二天早上9点,我恢复了笔记本电脑。事件现在应该到期了,但我的代码仍处于休眠状态
  • 晚了几个小时,我得到了这件事的通知
  • 我可以每60年代左右进行一次民意调查,但有没有办法:

    • 设置不因挂起而延迟的超时,或
    • 系统恢复时是否收到通知

    (显示问题的测试脚本:)

    您可以每隔一秒左右检查一次当前时间,如果是所需的时间(例如上午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);
    }