我可以让多个 Service Worker 都拦截同一个获取请求吗?
Can I have multiple service workers both intercept the same fetch request?
我正在编写一个库,我将为第 3 方提供给 运行 他们网站上的服务工作者。它需要拦截所有网络请求,但如果他们愿意,我希望允许他们构建自己的服务工作者。
我可以让两个服务工作者拦截相同的提取并在它们之间提供某种 priority/ordering 吗?或者我应该使用其他模式吗?
谢谢
不,你不能。每个范围只允许注册一个服务人员,因此 the latest kick the previous one out 除非范围更具体,在这种情况下,请求仅由最具体的人员参与。
尽管如此,您可以附加多个 fetch
处理程序,它们都会处理请求,因此也许您可以在单独的脚本中编写您的功能,让用户的服务工作者通过 [=14= 包含您的文件].
第一个同步调用 event.respondWith()
的处理程序(实际上,您不能异步调用此方法)获胜,其余试图调用的处理程序将抛出。
优先级排序和协调需要中间件。您可以查看 ServiceWorkerWare or sw-toolbox.
我正在编写一个库,我将为第 3 方提供给 运行 他们网站上的服务工作者。它需要拦截所有网络请求,但如果他们愿意,我希望允许他们构建自己的服务工作者。
我可以让两个服务工作者拦截相同的提取并在它们之间提供某种 priority/ordering 吗?或者我应该使用其他模式吗?
谢谢
不,你不能。每个范围只允许注册一个服务人员,因此 the latest kick the previous one out 除非范围更具体,在这种情况下,请求仅由最具体的人员参与。
尽管如此,您可以附加多个 fetch
处理程序,它们都会处理请求,因此也许您可以在单独的脚本中编写您的功能,让用户的服务工作者通过 [=14= 包含您的文件].
第一个同步调用 event.respondWith()
的处理程序(实际上,您不能异步调用此方法)获胜,其余试图调用的处理程序将抛出。
优先级排序和协调需要中间件。您可以查看 ServiceWorkerWare or sw-toolbox.