我正在建立一个新网站,在基础阶段我正在尝试评估加载图像的最佳方式。浏览器可以同时加载2-6个项目(images / css / js)。通过小道消息,我听到了各种不同的方法,但没有确切的答案实际上更快。
相对网址:
background-image: url(images/image.jpg);
绝对网址:
background-image: url(http://site.com/images/image.jpg);
绝对网址(包含子域名):
background-image: url(http://fakecdn.site.com/images/image.jpg);
@import
CSS文件中引用的图像是否在单独的线程中加载?答案 0 :(得分:3)
HTTP 1.1 spec表明浏览器不会打开超过两个到给定域的连接。
使用持久连接的客户端应该限制数量 它们维护到给定服务器的同时连接。一个 单用户客户端不应该保持2个以上的连接 任何服务器或代理。
因此,如果您要加载许多中等大小的图像,那么将它们放在单独的FQDN上可能是有意义的,这样2连接限制不是瓶颈。对于小图像,需要与每个FQDN建立新的套接字连接可能会超过其优势。同样,对于大图像,客户端网络带宽可能是限制因素。
如果始终显示图像,那么使用数据uri可能会很严格,因为不需要单独的连接,并且图像可以按照需要的顺序包含在流中。
但是,与优化性能一样,请先进行配置!
见
答案 1 :(得分:1)
对于许多小图片,社交媒体图标就是一个很好的例子,你还需要考虑将它们组合成一个精灵图。这样他们就会加载同一个请求,你只需要在使用它们时做一些背景定位。