detach()然后append()<picture>标签使Safari下载相同的JPG文件两次

时间:2019-03-01 07:38:52

标签: javascript jquery html

最大操作系统版本:10.14.3

Safari版本:版本12.0.3(14606.4.5)

我正面临仅Safari的问题。

我使用jQuery来detach()然后附加一个图片标签,这会使Safari请求两次相同的图片。那是不期望的。 Chrome和Firefox中没有这种问题。

为了让您更好地理解,我在Github中进行了演示。 https://github.com/EdmondWang/picture-tag-on-safari/tree/master

这是演示的网络面板,每次单击按钮“移至红色”和“移至蓝色”时,您都可以看到发送了“ toyota-prius-D@1x.jpg”的JPG请求。 enter image description here

这是整个请求和响应的快照: enter image description here 这是本地节点快速应用的日志: enter image description here

为什么要解决这个问题,是因为每次用户在Safari中滑动slick carousel@1.6.0时,我们都会重新加载图像。我发现 这是因为在滑动动作期间存在detach()&append()逻辑。(下面的slickAdd方法)所以我尝试模拟该逻辑以重现该问题。 enter image description here 有人知道如何避免这个重复的HTTP请求吗?

1 个答案:

答案 0 :(得分:0)

感谢@Jensv,在图像请求的响应中设置max-age中的Cache-Control,因为任何大于0的值都可以解决Safari中重复的http图像请求。