fetch 的缓存是否需要由客户端管理?

Does the cache for fetch need to be managed by the client?

使用 polyfilled fetch, I'm getting a 304 response as described here 获取数据时。 Fetch 显然会自动为我的请求生成适当的 If-None-Match header,并且我的后端回复 304(数据已在缓存中)。但是请求没有正确完成。

不过,我找不到任何关于在哪里可以找到缓存数据的文档。那么是否应该自动检索缓存数据?我可以设置 'cache-control': 'no-cache' header,但我当然更愿意使用缓存。

如果我明白你在问什么,如果服务器 returns 浏览器发送给它的请求的 304,那么浏览器会从它的缓存中满足请求(取决于浏览器)正如它对任何普通 HTTP 请求或 XMLHTTP 请求所做的那样。

但是,如果您不想从缓存中获取内容,并且想要强制加载全新的内容,则需要设置适用的 'cache-control': 'no-cache' header 并确保您尝试获取的 URL 是唯一的(通过路径或参数)。通常最简单的方法是附加一个带有当前时间戳的虚拟参数。例如...&_=1483970310923