4

Angular 团队做得很好,并在版本 5 中引入了服务工作者支持。文档非常有帮助,阅读相关文章后我真的可以看到事情是如何工作的,但是其中没有涉及一个主题。这一切在不支持服务工作者的浏览器中是如何工作的。

这就是所说的:

您的应用程序必须在支持服务工作者的 Web 浏览器中运行。目前,支持最新版本的 Chrome 和 Firefox。要了解其他支持 service worker 的浏览器,请参阅 Can I Use 页面。

Can I Use在相对重要的浏览器中显示对该功能的支持很差。我可以在不工作的 IE11 中幸存下来,但 Safari(尤其是移动设备)是我不希望不受支持的东西。

因此,我的目的是了解 Angular Service Worker 模块、服务、这些服务提供的事件等将如何在支持 Service Worker 的浏览器上运行。

所有这些都会默默地失败吗?事件会被触发吗?会ngsw-worker.js被要求吗?是否会将某些内容缓存在 IndexedDB 而不是 service worker 中?

该解决方案看起来很酷,但是我无法回答我应该使用它的问题吗?直到我知道上述问题的答案。

4

2 回答 2

3

官方回应

Angular SW 仅适用于支持服务工作者的浏览器。这包括所有的应用程序集成(例如 SwUpdate 服务)。

如果当前浏览器不支持 SW。

  • 永远不会下载 SW 脚本和 ngsw.json。
  • 主动尝试与 SW 交互,例如调用 -
  • SwUpdate.checkForUpdate() 将返回被拒绝的承诺。
  • 被动尝试侦听诸如 SwUpdate.available 之类的 SW Observable 将永远不会触发 - Observable 永远不会发出。
于 2018-02-20T19:22:05.540 回答
1

基本上不支持服务工作者的浏览器会默默地失败。所以在后台连接到 SW 的任何东西,例如离线缓存和推送通知都将不起作用。该站点仍将像任何其他站点一样工作,只是 PWA 的功能和特性不会。

于 2018-01-16T05:46:25.767 回答