2015-04-15 63 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); 
} 
相關問題