gpt4 book ai didi

javascript - 限制位于 Service Worker 范围内的文件夹

转载 作者:行者123 更新时间:2023-11-28 17:52:33 26 4
gpt4 key购买 nike

如何在注册服务工作人员时限制位于范围内的文件夹。

我有一个像这样的文件夹结构。

-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。

提前致谢

最佳答案

当 Service Worker 共享相同的父路径时,您无法将其范围明确限制为仅适用于一个子路径,而不适用于另一个子路径。

最直接的方法是在 fetch 处理程序中显式检查 URL,并且仅在 URL 与路径/文件之一匹配时调用 event.respondWith()你关心的。如果您不调用 event.respondWith()fetch 处理程序基本上将是无操作,并且 Service Worker 将不会参与响应请求。

例如:

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

关于javascript - 限制位于 Service Worker 范围内的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45185866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com