优化内容效率

Ilya Grigorik
Ilya Grigorik

我们的 Web 应用在范围、目标和功能方面不断发展,这是一件好事。不过,随着网络内容越来越丰富,另一个趋势也随之出现:每个应用下载的数据量持续稳步增长。为了提供出色的性能,我们需要优化每个字节的传输!

现代 Web 应用是什么样的?HTTP Archive 可以帮助我们回答这个问题。该项目通过定期抓取最热门的网站(Alexa Top 1M 列表中的 30 万多个网站),并记录和汇总每个目标网站的资源数量、内容类型和其他元数据的分析数据,来跟踪网站的构建方式。

HTTP Archive 趋势

第 50 百分位 第 75 百分位 第 90 百分位
HTML 13 KB 26 KB 54 KB
映像 528 KB 1213 KB 2384 KB
JavaScript 207 KB 385 KB 587 KB
CSS 24 KB 53 KB 108 KB
其他 282 KB 308 KB 353 KB
总计 1054 KB 1985 KB 3486 KB

上述数据反映了 2013 年 1 月至 2014 年 1 月期间,热门网站下载字节数的增长趋势。当然,并非每个网站都以相同的速度增长或需要相同的数据量,因此我们重点介绍了分布中的不同分位数:第 50 个(中位数)、第 75 个和第 90 个。

2014 年初,一个中等规模的网站由 75 个请求组成,总传输字节数达到 1054 KB,并且总字节数(和请求数)在过去一年中一直稳步增长。这本身并不令人意外,但确实会对性能产生重要影响:是的,互联网速度越来越快,但在不同国家/地区,网速提升的速度不同,许多用户仍受流量上限和昂贵的按流量计费套餐的限制,尤其是在移动设备上。

与桌面应用不同,Web 应用不需要单独的安装过程:输入网址即可运行,这是 Web 的一个关键特性。不过,为了实现这一点,我们通常必须提取数十个(有时是数百个)各种资源,所有这些资源加起来可能达到数兆字节的数据,并且必须在数百毫秒内汇集在一起,以实现我们所追求的即时网络体验。

鉴于这些要求,实现即时网络体验并非易事,因此优化内容效率至关重要:消除不必要的下载,通过各种压缩技术优化每个资源的传输编码,并尽可能利用缓存来消除冗余下载。