2015-04-15 31 views
0

我在写一些管理预定事件的JavaScript。活动到期时页面应该更新。如何等待一段时间,甚至当笔记本电脑暂停时?

我正在使用window.setTimeout(cb, scheduledTime - now)。这通常工作正常,但如果笔记本电脑被暂停,那么延迟太长。

实施例:

  1. 我安排事件明天,上午9点。
  2. 我把笔记本电脑睡了。
  3. 第二天早上9点,我恢复笔记本电脑。事件现在应该到期,但我的代码仍在睡觉。
  4. 几个小时后,我收到了事件通知。

我可以轮询每隔60秒左右,但有一些办法:

  • 设置未被暂停延迟超时,或
  • 获得当系统恢复通知?

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

回答

0

您可以查看当前的时间每一秒左右,如果是所期望的量(例如9:00 AM),警报:

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); 
} 
相关问题