微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Service Worker 有时缓存不会更新我必须硬刷新

如何解决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 举报,一经查实,本站将立刻删除。