我有一个会员网站,我想只为登录用户创建缓存文件。如何处理Workbox?
解决方案:我发现工作箱在这种情况下具有非常好的功能。可以使用cacheable response。所以从服务器我可以发送如下的特定标头值:
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
),那么将为该用户缓存所有数据。