哪种方式是在网页上加载图片的最快方式?

时间:2011-08-30 01:38:44

标签: css image

我正在建立一个新网站,在基础阶段我正在尝试评估加载图像的最佳方式。浏览器可以同时加载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);
  1. 浏览器会将我的“fakecdn”子域识别为另一个域,并在单独的线程中同时加载它吗?
  2. @import CSS文件中引用的图像是否在单独的线程中加载?

2 个答案:

答案 0 :(得分:3)

HTTP 1.1 spec表明浏览器不会打开超过两个到给定域的连接。

  

使用持久连接的客户端应该限制数量   它们维护到给定服务器的同时连接。一个   单用户客户端不应该保持2个以上的连接   任何服务器或代理。

因此,如果您要加载许多中等大小的图像,那么将它们放在单独的FQDN上可能是有意义的,这样2连接限制不是瓶颈。对于小图像,需要与每个FQDN建立新的套接字连接可能会超过其优势。同样,对于大图像,客户端网络带宽可能是限制因素。

如果始终显示图像,那么使用数据uri可能会很严格,因为不需要单独的连接,并且图像可以按照需要的顺序包含在流中。

但是,与优化性能一样,请先进行配置!

答案 1 :(得分:1)

对于许多小图片,社交媒体图标就是一个很好的例子,你还需要考虑将它们组合成一个精灵图。这样他们就会加载同一个请求,你只需要在使用它们时做一些背景定位。