如何解决Service Worker 有时缓存不会更新我必须硬刷新
一开始,当我更新文件和 Service Worker 并刷新时,我会看到所做的更改。然而,在很短的时间后(如 10 分钟或 15 分钟),我的更改不再可见,甚至我的缓存也不再更新。我不知道为什么。
我的服务人员有问题吗?
我的服务人员
const version = "1.0.0" // I update this version when I modify a file (js,html,etc) and refresh the page
const cache_name = "my-cache"
self.addEventListener('install',function(event) {
event.waitUntil(
caches.open(cache_name).then(function(cache) {
console.debug("sw add cache");
return cache.addAll(
[
"/","auth.html","home.html","index.html",/// 70 entries ....
]
);
}).then(function() {
return self.skipwaiting();
})
);
});
self.addEventListener('activate',function(event) {
console.debug("sw activated");
event.waitUntil(self.clients.claim());
});
self.addEventListener('fetch',function(event) {
console.debug("sw fectched");
event.respondWith(
caches.open(cache_name).then(function(cache) {
return cache.match(event.request).then(function(response) {
var fetchPromise = fetch(event.request).then(function(networkResponse) {
cache.put(event.request,networkResponse.clone());
return networkResponse;
})
return response || fetchPromise;
})
})
);
});
我如何检查和更新我的应用(在 index.js 中):
window['isUpdateAvailable']
.then(isAvailable => {
if (isAvailable) {
location.reload();
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。