优化内容效率

Ilya Grigorik
Ilya Grigorik

我们的 Web 应用在范围、抱负和功能方面不断发展壮大,这是好事。不过,不断追求更丰富的网络体验的趋势正在推动另一个趋势:每个应用下载的数据量继续以稳定的速度增加。为了提供出色的性能,我们需要优化每个字节的传送!

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

HTTP 归档趋势

第 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 的一大特色。不过,为了实现这一点,我们通常必须提取数十个(有时甚至数百个)各种资源,所有这些资源加起来可能有几兆字节的数据,并且必须在几百毫秒内汇总到一起,以便提供我们所追求的即时 Web 体验。

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