【发布时间】:2021-02-05 13:06:20
【问题描述】:
我有一个服务人员,如果您处于离线状态,我想返回一个离线页面。我意识到你必须先缓存离线页面,所以我这样做了。当我将其缓存并使用 chrome 开发工具将网络限制为脱机时,它显示了默认的脱机页面!我不知道如何在离线时调出页面。如果这会改变任何事情,我正在使用 chromebook。这是我的代码(顺便说一下,我对服务人员完全陌生):
this.addEventListener('install', function(event) {
event.waitUntil(
caches.open('v1').then(function(cache) {
return cache.addAll(['../offline.html','../images/ico/ico.jpg']);
})
);
});
this.addEventListener('fetch', function(event) {
event.respondWith(
caches.match(event.request)
.then(function(response) {
// If fetch fails, we return offline.html from cache.
return fetch(event.request)
.catch(err => {
return caches.match('../offline.html');
});
}
)
);
});
【问题讨论】:
-
看起来我正在阅读的教程 (dev.to/saurabhdaware/…) 并没有告诉我服务工作者必须在我将处理请求的根域中。 Google 开发人员更好地解释了这一点 (developers.google.com/web/fundamentals/primers/service-workers)
标签: javascript caching service-worker