【问题标题】:Application Cache Storage items have empty response?应用缓存存储项有空响应?
【发布时间】:2017-06-14 17:18:58
【问题描述】:
我正在使用 service worker 设置我的 preactjs 网站。
使用Sw-precache-plugin
我只是查看它存储在缓存存储中的缓存项,我期望的条目都在那里,但它们的响应为空。
我检查了一些其他网站的服务人员,发现他们的条目有“OK”的响应。
只是想知道使缓存响应说“OK”而不是空白的触发器是什么。
我发现的另一个示例,其中一些返回 OK,而另一些返回空白
【问题讨论】:
标签:
caching
webpack
browser-cache
application-cache
sw-precache
【解决方案1】:
Chrome 缓存存储查看器中的“响应”列旨在反映关联 Response 对象的 statusText 字段的值。成功响应的传统status line 是“200 OK”,因此“OK”是其中的statusText 部分。您可以通过将 Response 与不同的 statusText 存储在一起来查看这一点,例如:
有时没有列出“OK”,这是因为Response 是opaque,而statusText 不可访问。第二个屏幕截图中的字体资源就是这种情况。
话虽如此,我已经看到不透明的响应(例如您的第一个屏幕截图中的那些sw-precache-managed 条目)没有正确反映statusText 的情况。在这些情况下,您的 Web 服务器可能只是响应“200”状态行而不是“200 OK”,这将转换为200 的status 和'' 的statusText。这对于 Web 服务器来说是非常有效的,可以用于状态行,只要条目被成功使用,我认为您无需担心。