Javascript 限制服务工作人员范围内的文件夹
如何在注册服务人员时限制作用域下的文件夹 我有一个这样的文件夹结构Javascript 限制服务工作人员范围内的文件夹,javascript,scope,web-worker,service-worker,Javascript,Scope,Web Worker,Service Worker,如何在注册服务人员时限制作用域下的文件夹 我有一个这样的文件夹结构 -root -folder1 -subfolder1 -subfolder2 -subfolder3 -file.js -file2.js -css1.css -css2.css -serviceworker.js 据我了解: if ('serviceWorker' in navigator) { navigator.serviceWorker .regi
-root
-folder1
-subfolder1
-subfolder2
-subfolder3
-file.js
-file2.js
-css1.css
-css2.css
-serviceworker.js
据我了解:
if ('serviceWorker' in navigator) {
navigator.serviceWorker
.register('serviceworker.js',)
.then(function(reg) {
console.log('Registration succeeded', reg);
})
这里serviceworker.js文件位于folder1文件夹下,这意味着folder1中的所有文件和子文件夹都在范围内
我想要的是:
是否有任何方法可以限制服务人员所说的subfolder1和file.js范围内的文件和文件夹
提前感谢当服务工作者的作用域都共享同一父路径时,您不能专门将其作用域限制为仅应用于一个子路径,而不应用于另一个子路径 最直接的方法是显式地检查
fetch
处理程序中的URL,并且仅在URL与您关心的路径/文件之一匹配时调用event.respondWith()
。如果不调用event.respondWith()
,则获取
处理程序基本上是一个无操作的处理程序,服务人员将不参与响应请求
例如:
只需创建一个
serviceworker
文件夹,并将service worker和任何您想限制它的内容放在那里?有人知道Workbox是否提供此功能吗?
self.addEventListener('fetch', event => {
if (event.request.url.includes('subfolder1')) {
event.respondWith(/* your caching/network logic */);
}
// By not calling event.respondWith() for certain requests,
// the service worker will effectively be a no-op.
});