首页 > 解决方案 > Service Worker - 如何仅更新缓存中的更新文件,而不是使用 Service Worker 替换整个缓存?

问题描述

self.addEventListener('activate', event => {
  // delete any caches that aren't in expectedCaches
  event.waitUntil(
    caches.keys().then(keys => Promise.all(
      keys.map(key => {
        if (!expectedCaches.includes(key)) {
          return caches.delete(key);
        }
      })
    )).then(() => {
      self.clients.claim();
      console.log('myCache-v1 now ready to handle fetches!');
    })
  );
});

我想最小化缓存更新时间。而不是删除整个缓存并替换。我只想更新已更改的文件。

我遇到的问题:用户很长时间不在线。它将检查并更新完整的缓存,然后替换。

标签: browserservice-worker

解决方案


推荐阅读