【发布时间】: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