В моем приложении есть несколько страниц, например, http://example.com/path/foo1.html и http://example.com/path/foo2.html. Могу ли я зарегистрировать отдельного работника службы для каждой из этих страниц, или они должны использовать одного и того же работника службы, потому что они оба находятся в папке ./path? Другими словами, указывает ли параметр области папку или может указывать страницу? Я попытался отдельно зарегистрировать сервис-воркеров, по одному на каждую страницу, но я вижу, что оба сервис-воркера загружаются для каждой страницы. Это ожидаемо или я что-то не так делаю?
Прописать отдельный сервис-воркер для каждой страницы?
Ответы (1)
Вы можете зарегистрировать несколько сервис-воркеров для разных страниц, если указанная область отличается. Поскольку корнем для обеих страниц является «/path», все, что находится после пути, будет контролироваться одним и тем же сервисным работником.
Для регистрации нескольких сервис-воркеров вам нужно, чтобы страницы были перемещены по другому пути. или, по крайней мере, включите что-то между корневой и html-страницей.
путь/samp/foo1.html и путь/samp1/foo2.html
В приведенном выше случае в foo1.html вы можете зарегистрировать сервис-воркера с областью действия как path/samp, а в foo2.html — с областью действия path/samp1.
Включение нескольких сервис-воркеров для одной и той же области в настоящее время недоступно.
Для получения дополнительной информации: https://github.com/w3c/ServiceWorker/issues/921