首页 > 代码库 > 客户端网络优化方法

客户端网络优化方法

  1. 减小图片大小(使用WebP格式的图片) 
    大部分的Facebook应用数据都是图片,因此减少图片的大小就可以较少数据的下载量,从而加快下载速度,这一点在高延迟的网络环境下非常重要。Facebook返回给客户端的图片都做了压缩处理,图片压缩方面业内主要使用gzip压缩,常见的服务器都支持gzip压缩。另外,Facebook大规模使用了WebP格式的图片,WebP是谷歌推出的一种新的图片格式,可以将图片大小减少40%,目前淘宝也有使用这种格式的图片。WebP不仅可以大幅度减少图片大小,而且还支持透明度和动画。对于一些不支持WebP的设备,Facebook会在客户端把它转码为JPEG格式的图片。 

    前不久,Facebook也赞助了来自Mozilla实验室的JPEG图像编码器项目mozjpeg,mozjpeg可以在不降低图像质量且兼容主流的解码器的情况下,提供产品级的JPEG格式编码器来提高压缩率以减小JPEG文件的大小。感兴趣的读者可以尝试使用。

  2. 网络质量检测 
    Facebook在每个响应的的HTTP头中都提供了RTT(Round Trip Time)估算,客户端根据平均吞吐量和RTT时间来确定网络连接的质量。网络连接质量会大致被评为几个级别:优秀、良好、一般、差。开发人员针对不同的网络连接级别来调整相应的功能,比如增加/减少压缩调整并行的请求数量、禁止/允许自动播放视频、预加载内容。另外,Facebook还专门开发了Air Traffic Control以支持不同网络环境下的配置文件模拟。

  3. 预加载内容 
    预加载可以使用空闲时间来预先下载/加载用户接下来很可能会浏览的资源,在高延迟的网络环境下,内容预加载可以减少用户的等待时间。比如在网络连接不好的情况下,Facebook会在应用启动时加载基础数据。使用预加载内容方案时要注意不要让后台网络请求阻塞正常的网络请求,这块Facebook主要使用了一个优先队列来存储请求。

客户端网络优化方法