问题描述
我从 API 响应接收图像 URL,我想缓存每个图像。我尝试只使用 cache.addAll 但它不起作用,因为图像是不透明的响应。我正在考虑使用 fetch
获取每个图像并让路由缓存它们,但我不确定这是否是最好的方法。还有其他更好的选择吗?
解决方法
this Stack Overflow answer 中有一些指南解释了如何缓存不透明的响应;它的要点是:
const request = new Request('https://third-party-no-cors.com/',{
mode: 'no-cors',});
// Assume `cache` is an open instance of the Cache class.
fetch(request).then(response => cache.put(request,response));
需要注意的是,您的代码无法知道您缓存的是有效响应、HTTP 404 或其他错误。