Service Worker 的范围是多少?

Which is the extent of a service worker?

我在同一域下的不同文件夹中有不同的应用程序 运行。

https://<mydomain>/app1
https://<mydomain>/app2
...
...

我注意到一个文件夹 (https://<mydomain>/app1) 上的服务工作者 运行 正在将其操作扩展到整个域 https://<mydomain>.

如何在不受干扰的情况下为每个子文件夹部署 Service Worker?

在注册阶段使用范围选项。

基本上你会在 app1 和 app2 目录中部署两个 sw.js 文件,并限制它们只控制它们下面的资源。

  navigator.serviceWorker.register('/sw.js', {scope: './'}).then(...)

在此处阅读更多内容: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/register