我有一个会员网站,我想仅为登录用户创建缓存文件。怎么可能用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
仅为登录用户设置),那么将为该用户缓存所有数据。