HTTP请求忽略了缓存的SVG

时间:2019-11-06 16:29:17

标签: google-chrome svg fetch browser-cache http-caching

我正在使用同一服务器上的Fetch API检索数据。我同时提取JSON数据和SVG文件(使用img标签)。这两个请求都返回HTTP标头Last-Modified,以允许浏览器缓存内容。这两个请求也成功缓存了资源。我正在使用 ChromeCacheView 软件工具对此进行验证。这意味着在后续请求中,浏览器也会发送If-Modified-Since标头。

现在的事情是,即使两个请求的请求中都包含If-Modified-Since标头,JSON数据仍是从缓存中提供的,而不是SVG文件。我测试了三种情况:

  • 页面刷新-加载SVG和JSON数据且SVG位于视图中时,因为它们已覆盖在地图上

    • 在这种情况下,将从内存缓存中获取JSON数据和SVG
  • 页面刷新-加载SVG和JSON数据并且视图中SVG为 NOT 时,因为它们被覆盖在地图上

    • 在这种情况下,仍然会从缓存中获取JSON数据,但不会从SVG中获取
  • 在新标签页上加载页面-新会话

    • 在这种情况下,仍然会从缓存中获取JSON数据,但同样不会从SVG中获取

与HTTP缓存相关的标头仅包含Cache-Control: public, must-revalidate,当然也包含Modified-Since。不幸的是,我现在没有示例代码可以重现此代码,但是如果您对此有任何想法,还可以吗?

0 个答案:

没有答案