代码改变世界

【前端优化】IE浏览器下同一网页多图片显示的瓶颈与优化

2011-11-03 19:07  sniper007  阅读(306)  评论(0编辑  收藏  举报
Internet Explorer 浏览器在同一时刻只能从同一域名下载两个文件。

  至于原因请见 MSDN Blogs:《Internet Explorer and Connection Limits》,如何解除限制请见微软客户帮助与支持主页:《如何将 Internet Explorer 配置为可以同时进行两个以上的下载会话》。

   不管 Firefox 有多火,无可否认,IE 仍然是浏览器市场的老大。所以,在做系统架构时,不得不去考虑 IE 同时只能从同一域名下载两个文件的限制。如果超过两个文件,IE 将会以队列形式等待两个文件下载完毕,再去下载接下来的两个文件。这样,当在一个页面显示多张图片时,IE 用户的图片下载速度就会受到影响。

  百度、新浪、雅虎等网站采用了同一组图片服务器,使用多个二级域名的方式来解决这个问题。

  通过 HttpWatch Professional 5.2.17 分析可以看出,百度的图片搜索采用了 t1.baidu.com ~ t8.baidu.com 八个域名来显示图片,消耗在 IE 浏览器端的 Blocked 时间小于0.001秒,非常快。

  点击在新窗口中浏览此图片


   新浪的图片 CDN 同样采用了 i0.sinaimg.cn ~ i3.sinaimg.cn 四个域名来显示图片,消耗在 IE 浏览器端的 Blocked 时间也是0.001秒。新浪采用独立的顶级域名 sinaimg.cn 而非 ***.sina.com.cn 域名作为图片服务器域名,还有一个好处,就是 sina.com.cn 域下的 Cookie 信息不会被带到 sinaimg.cn 域下,提高了图片服务器解析 header 头的速度。

  点击在新窗口中浏览此图片


  再看网易相册的一组图片服务器,只使用 pics.photo.163.com 一个域名,消耗在 IE 浏览器端的 Blocked 时间为0.647秒,就比较慢了。

  点击在新窗口中浏览此图片
来自:
http://blog.s135.com/post/332/