Page 219 - Web性能权威指南
P. 219

我们对两个数据集的调查表明,冗余的传输分别占据相应 HTTP 总流量
                       的 18% 和 20%。这些额外传输的内容占总字节数的 17%,耗电 7%,占
                       信号负载的 6%,在第二个数据集的所有蜂窝数据流量中,占无线资源
                       的 9%。而产生这些冗余传输的主要原因,可以归结为智能手机 Web 缓
                       存的实现未能完全支持或者严格遵照协议规范,或者开发人员没有完全
                       利用相应的库所提供的缓存功能。
                                            ——Web Caching on Smartphones,MobiSys 2012

                   你的应用在一遍又一遍地请求不必要的资源吗?有证据表明,提出这个问题一点也
                   不可笑。请大家务必对自己的应用多加注意,当然最好是通过测试手段来保证。



                 13.1.2 压缩传输的数据
                 利用本地缓存可以让客户端避免每次请求都重复取得数据。不过,还是有一些资源
                 是必须取得的,比如原来的资源过期了,或者有新资源,再或者资源不能缓存。对
                 于这些资源,应该保证传输的字节数最少。因此要保证对它们进行最有效的压缩。

                 HTML、CSS 和 JavaScript 等文本资源的大小经过 gzip 压缩平均可以减少 60%~80%。
                 而图片则需要仔细考量:

                 •   图片一般会占到一个网页需要传输的总字节数的一半;
                 •   通过去掉不必要的元数据可以把图片文件变小;
                 •   要调整大小就在服务器上调整,避免传输不必要的字节;
                 •   应该根据图像选择最优的图片格式;
                 •   尽可能使用有损压缩。

                 不同图片格式的压缩率迥然不同,因为不同的格式是分别为不同使用场景设计的。
                 事实上,如果选错了图片格式(比如,使用了 PNG 而非 JPG 或 WebP),多产生几
                 百甚至上千 KB 数据是轻而易举的事。建议大家多找一些工具和自动化手段,以确
                 定最佳图片格式。

                 选定图片格式后,其次就是不要让图片超过它需要的大小。如果在客户端对超出需
                 要大小的图片做调整,那么除了额外传输不必要的字节之外,还会浪费 CPU、GPU
                 和内存资源(参见 11.6 节的“计算图片对内存的需求”)。
                 最后,选择了正确的格式,确定了必需的大小,接下来就要研究使用哪一种有损图
                 片格式,比如 JPEG 还是 WebP,以及压缩到哪个级别:较高压缩率可以明显减少字
                 节数,同时图片品质不会有太大或太明显的损失,尤其是在较小(手机)的屏幕上
                 看,不容易发现。


                                                                       优化应用的交付   |   205
   214   215   216   217   218   219   220   221   222   223   224