浏览器返回时服务工作者脱机(需要刷新)

时间:2018-04-10 23:11:01

标签: firefox service-worker progressive-web-apps

我的服务人员非常简单;只是一种缓存字体,JS和其他一些项目的方法,可以加快页面性能并减少数据传输。

然而,当实时(example)导航到第二页然后使用浏览器的后退按钮显示OFFLINE页面而不是首先尝试或使用自然浏览器缓存。

SW的相关部分:

// Clear old caches when activated
self.addEventListener('activate', function(e) {
  e.waitUntil(
    caches.keys().then(function(keyList) {
      return Promise.all(keyList.map(function(key) {
        if (key !== cacheName) {
          console.log('[ServiceWorker] Removing old cache', key);
          return caches.delete(key);
        }
      }));
    })
  );
  return self.clients.claim();
});

self.addEventListener('fetch', function(event) {
  event.respondWith(
    // Try the cache
    caches.match(event.request).then(function(response) {
      // Fall back to network
      return response || fetch(event.request);
    }).catch(function() {
      // If both fail, show a generic fallback:
      return caches.match('/offline.htm');
      // However, in reality you'd have many different
      // fallbacks, depending on URL & headers.
      // Eg, a fallback silhouette image for avatars.
    })
  );
});

这似乎更有可能(或可能是孤立的)Firefox(当前版本59.0.2)。

1 个答案:

答案 0 :(得分:2)

So Installed FF开发者版

FF60

它在FF60中工作正常

<强> FF60

Working

问题在于FF59.0似乎

<强> FF59

FF59

所以很可能是下次更新时会解决的问题