绕过 Service-Worker 缓存

Bypass Service-Worker caching

我有一个渐进式网络应用程序,它与 API 对话。对此 api 的调用由 service worker 缓存,效果很好。

但现在,我想添加一个重新加载按钮,理想情况下,它会强制服务工作者尝试绕过缓存并在成功时更新它,而且如果连接,它也不应该 return 缓存结果无法制作。

我有点不确定如何解决这个问题。我正在使用 sw-toolbox.

根据您的描述,您正在使用应用程序缓存。它可以从独立于 sw-tool box 的应用程序访问。

  function onReloadButtonClicked(event) {
      //Check for browser cache support
      if ('caches' in window) {
        //Update cache if network query is successful
        caches.open('your_cache_name')
          .then(function(cache) {
            cache.add('your_url');
          }).catch(function(err) {
            // Do something with the error
          });
      }
    }

所有请求都通过接收回调的获取回调 request object. Thus, before returning a cached response you can look for an additional header parameter (you need to include it into your request to API) to skip the logic returning cached response