2017-09-26 26 views
0

document.ononline是瀏覽器中的一個事件。是否有服務工作者代碼支持的等效事件,它沒有DOM訪問權限?服務人員是否支持ononline事件?

我看到的所有示例代碼都會在處理請求的過程中檢查網絡狀態。爲了向服務器或雲提交本地更新,立即響應網絡可用性將是可取的。

我能找到的文檔而言,最好是https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerGlobalScope和只列出這些事件:

  • onactivate
  • onfetch
  • oninstall
  • 的onMessage
  • onnotificationclick
  • onnotificationclose
  • onpush
  • onpushsubscriptionchange
  • onsync

其中,同步似乎是最喜歡我所追求的,但它依賴於使用SyncManager,而對於該文件是充滿了對使用警告在生產代碼。

回答

0

我不確定在SW中是否有可用的事件。有人應該證實這一點。

您可以通過在頁面的JS中使用ononline事件處理程序邏輯來解決此問題,這可以通知SW連接更改。這也是處理用戶界面中任何通知的適當位置。

Spesifically:

  • SW註冊一個的onMessage處理程序
  • 客戶端/頁JS寄存器用於ononline事件的處理程序
  • 當連接發生變化時,處理程序通知經由postMessage的API
  • SW的SW收到來自客戶端的連接更改消息並相應地採取行動

postMes sage API非常有用,可以用來在頁面和SW之間傳遞基本的任何數據。請注意,我的建議沒有任何特別的信息,只需傳遞諸如{「new_status」:「在線」}等內容即可。