2017-09-26 81 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”:“在线”}等内容即可。