一个关于img的请求次数的问题

如下:

这里有三个关于图片的加载(三张图片不一样),那么display:nonevisibility:hidden是否对img的请求造成影响呢?


我们来验证一下便知晓,Chrome的F12查看Network:

显然,4次请求,其中3次img请求!(这里使用的是Chrome)


关于图片请求的不同情况不同浏览器下可能都会有不同的结果。

具体可参考:https://www.haorooms.com/post/web_http_request

总结图片请求的不同情况,有以下几种:

1. 隐藏图片

display: none —— 只有Opera不产生请求。

visibility: hidden —— 在Opera下也会产生请求。

2. 隐藏元素的背景

Opera和Firefox对于用display: none隐藏的元素背景,不会产生HTTP请求。

3. 重复图片(所加载图片是一样的 <img />)

所有浏览器产生一次请求

4. 重复背景

所有浏览器产生一次请求

5. 页面中不存在的元素的背景

不请求(只用对应元素在html页面中存在时,才会加载图片,先渲染DOM,再渲染CSS 树)

6.  多重背景

请求最后一个(样式覆盖)

7. hover的背景加载

触发hover时,才会请求

8. JS里innerHTML中的图片

只有Opera不会马上请求图片。当添加到DOM树上时,Opera才会发送请求。

9. 图片预加载

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容