【问题标题】:Pre-loading background-image and 304 response预加载背景图片和 304 响应
【发布时间】:2017-04-16 04:30:21
【问题描述】:

我发现当我预加载背景图像属性中使用的图像时,Safari 浏览器(桌面和移动)重新请求它们已经预加载。 (并且他们的响应是 304 响应。)

如果图像已预先加载,Chrome 浏览器(桌面和移动)将不再请求它。它会立即出现。

但我应该在 Safari 中等待一段时间,因为 Safari 会重新请求它以获得 304 响应!

我不想在 Safari 中被重新请求,因为如果有 div 标签,其背景图像由其类动态更改,则每当其类更改时都会发生闪烁。

这在桌面版中并不重要,但在移动版中确实很重要。

我怎样才能到达它?

附:

可以使用 img 标签、显式 css 背景图像或内容属性或 javascript 以某种方式进行预加载!

【问题讨论】:

    标签: html css image caching


    【解决方案1】:

    我在特殊情况下解决了这个问题。

    在我的网站中,我将背景图像添加到 BODY 标记中,当用户单击按钮时,我会添加一个带有回调函数的 EventListener(更改背景图像 URL,并预加载另一个图像以供下次单击)。

    当我在本地主机环境(href 为 127.0.0.1)中测试这些功能时,单击整个页面后会在更改背景图像 URL 时闪烁/闪烁。我用 Wireshark 挖掘 HTTP res/rep,然后发现 Safari 会重新请求相同的图像(即使它已经预加载)。

    奇怪的事情来了,当使用图像服务器(href 来自 www.abcdefgh.com/image/test_xxx.jpg,而不是 IP 地址)测试所有这些功能时,闪烁/轻弹消失了。在 Wireshark 中观看,重新请求也消失了!

    【讨论】:

      猜你喜欢
      • 2017-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      相关资源
      最近更新 更多