我正在开发一个基于Web视图的移动应用程序和一个基于express.js的后端。从技术上讲,它归结为嵌入式Chrome浏览器和HTTP端点。
在我的应用程序中,我有一个仪表板,我希望它的行为方式如下:
200 OK
响应有效负载和Last-Modified
标头,或304 Not Modified
且没有内容)
Cache-Control: max-age=0
If-Modified-Since
标题Cache-Control: only-if-cached
请求,该请求应该产生缓存的响应,如果没有找到则会失败。 问题在于,当服务器关闭时,Cache-Control: only-if-cached
的回退请求总是失败。特别是,即使浏览器缓存了响应,它也会失败(我知道它它是否已缓存,因为首先我得到200 OK
,并且在第二个请求中,即使收到304 Not Modified
- 它没有内容,它也会产生响应内容。那么为什么失败呢?或者我应该如何构建与缓存相关的标题,以便它按照描述工作?
我正在跑步:
其他说明:我可能会使用服务工作者,以便仪表板脱机工作,但我相信使用普通的HTTP标头和浏览器缓存可以实现相同的功能。
答案 0 :(得分:0)
是的,这应该可以通过HTTP定义的缓存行为实现,但前提是浏览器支持该规范。
在Chromium的来源中,only-if-cached
似乎只出现在第三方模块中(only-if-cached
package:chromium
)。这表明Chrome可能不支持标题。