2016-12-01 33 views
0

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

如果图像是预加载的,Chrome浏览器(桌面和移动设备)再也不会请求它。它只是立即出现。

但是我应该在Safari中等待几次,因为Safari会重新请求它获得304响应!

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

它在桌面上并不重要,但在Mobile中非常重要。

我怎么能达到它?

P.S.

可以通过某种方式使用img标记,显式CSS背景图像或内容属性或JavaScript来进行预加载!

回答

0

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

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

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

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