结论
- 浏览器的网络请求资源数是针对单一域名的
- 不同浏览器,不同http协议版本允许的网络请求资源数是不一样的(具体自行百度),不过总的来说在2-8个之间
对页面加载的影响
假如一个页面有120个静态资源(css、js、img),并且所有资源都在一个域名下,使用的浏览器最大网络并行请求资源数是6,假设理想一些:所有请求时间都是一样的,每个文件加载需要500ms,则所有资源加载完成需要 120/6 * 0.5 = 10s 的时间。
优化方案
- 减少网络请求数
- 使用css spirit,将图标合成在一张图中,减少图片数量,减少http请求数
- 使用打包工具合并css和js,减少文件数量,减少http请求数
- 增加静态资源来源
- 将静态资源分布在不同的服务器中,使用多个域名,加大并发量
- 将静态资源和html文档分放在不用的域名下也有另一个原因,每次页面请求都会将相同域名下的cookie带给服务器端,实际上静态资源带上cookie是没必要的