另一个渐进式 Web 应用范围内的渐进式 Web 应用



我希望为域www.xyz.com制作一个渐进式Web应用程序,为域www.xyz.com/abc制作另一个渐进式Web应用程序。我应该怎么做,在这两种情况下,服务人员的行为是什么?是有 2 个服务工作者注册还是一个注册适用于两个 PWA?另外,我应该为它们制作 2 个清单文件吗?

两个 URL 只能有一个 PWA。创建服务辅助角色时,其范围涵盖当前文件夹和相对子文件夹。 如果将其放在根级别,则可以对两个 URL 使用一个服务工作线程,而无需在引入嵌套构造时使思维更加复杂。

您可以在同一服务工作线程中轻松定义不同的缓存策略。

如果你想深化PWA主题,你可以看看我写的关于它们的文章,从基本概念开始,然后更深入地介绍更高级的主题。


更新

清单文件的 scope 属性确定服务工作进程 (SW( 可以截获哪些 HTTP 调用。

如果你有scope: '/',你的软件将拦截你的应用程序发出的所有HTTP请求。
如果是/user,软件无法拦截不属于其范围内的请求(例如/orders/code.js(,但它会拦截用户根目录下的所有 GET 调用,如/user/details.

因此,在您的情况下,您可以有两个软件(即使在同一页面上(,您可以在其中定义不同的范围进行拦截,您必须小心不要在它们之间重叠范围。 如果您计划同时缓存静态资产,请记住,SW 的范围由存储 SW 文件的文件夹及其子文件夹给出。

关于多个清单文件,Jeff 在 SO 上给出了答案。

最新更新