Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 限制服务工作人员范围内的文件夹_Javascript_Scope_Web Worker_Service Worker - Fatal编程技术网

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.
});