0

我有一个会员网站,我想仅为登录用户创建缓存文件。怎么可能用Workbox呢?

解决方案:我发现workbox在这种情况下有一个非常好的功能。可以使用可缓存的响应。因此,我可以从服务器发送特定的标头值,如下所示:

response.setHeader('X-Is-Cacheable', 'true')

在我的服务人员中,我可以像这样检查该标头值是否匹配:

workbox.routing.registerRoute(
  new RegExp('/path/to/api/'),
  workbox.strategies.staleWhileRevalidate({
    cacheName: 'api-cache',
    plugins: [
      new workbox.cacheableResponse.Plugin({
        headers: {
          'X-Is-Cacheable': 'true',
        },
      })
    ]
  })
);

因此,如果服务器将 X-Is-Cacheable 设置为 true(我true仅为登录用户设置),那么将为该用户缓存所有数据。

4

1 回答 1

0

我认为您必须编写自己的处理程序来检查用户是否已登录然后缓存响应

请参阅:使用自定义回调处理路由

于 2018-03-28T06:00:02.570 回答