【问题标题】:Does Edge implement multiple specialist ServiceWorker instances?Edge 是否实现了多个专业的 ServiceWorker 实例?
【发布时间】:2018-03-02 03:17:12
【问题描述】:

当前的 ServiceWorker 设计/实现存在一个基本设计缺陷,即每个域每个 UA 只有一个。

但是,我相信 Edge,尽管他们迟迟没有出现,但有专门的 SW 实例用于推送、获取等。

有人可以确认 Edge 实现了多个专业 SW 实例吗?

编辑 1

好的,它可能是 Safari/Webkit,但读取 this 它看起来像所有 ServiceWorker 线程的 1 个进程加上另一个用于监视/启动/停止但每个域只有一个同时 SW 实例(加上狡猾的 iFrame 逻辑 webkit继续)

因此,如果 Webkit 或 Edge 都没有按照我的记忆告诉我,那么这不是一个好的性能想法吗? (除非降低 SW 回收的命中率)

编辑 2

第三个想法,ServiceWorker 中的所有内容都是异步或禁止的,这意味着 Fetch、Push、Travel 事件都可以多路复用到同一个 SW 实例而不会降低性能。

哦,好吧,我又回到了“如果我知道为什么没有人实施 TravelManager 的话,我会感到很高兴 :-(”

FWIW 共享内存缓冲区的 WebKit 实现肯定需要同步 API?打破软件设计的主要前提之一?

【问题讨论】:

  • Edge MVP 在这里。让我问问平台团队。同时,提供背景信息是可以的,但与您之前的帖子相比,我认为有点太多了......绒毛,IYKWIM。我花了很长时间才找到你的实际问题,只是因为它是一个句子,这对于关于 SO 的问题并不好。
  • tl,博士; Can someone please confirm that Edge implements multiple, specialist SW instances?
  • 我很抱歉。我为此背负了 2 年的包袱,发现很难浓缩它。谢谢你的回复。话虽如此,也将 sscce 的链接传递给 Edge 平台团队。如果没有其他内容,请参考上下文。
  • 是的,我完全理解您对此的不满。会做。当我有时间时,我会看看我能做些什么来编辑你的问题。
  • 关于 Edge 的 SW 实施我只能告诉你这么多,但考虑到地理定位这件事的历史,我认为最好我们把它排除在外,因为它与手头的问题只是切线相关。跨度>

标签: javascript microsoft-edge service-worker progressive-web-apps


【解决方案1】:

虽然 Edge 确实实现了多个 Service Worker,但它支持专门的 Service Worker 进行推送、获取等。

【讨论】:

  • 您能否详细说明每个域同时产生多个“活动”ServiceWorker 的条件?此外,如果这些 SW 实例的用途是通用的,您能否确认在同时处理 PUSH 通知和服务器 FETCHing 时不存在竞争条件和/或事件顺序问题?
  • 我猜你的模棱两可的答复意味着“随着时间的推移,多个服务工作人员实例只有一个处于‘活动’状态”,而不是“多个活动的、同时的和并行的服务工作人员实例”领域”?请确认。
猜你喜欢
  • 2010-09-21
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
  • 2010-12-26
  • 1970-01-01
  • 2012-03-16
相关资源
最近更新 更多