客户端网络优化方法

  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主要使用了一个优先队列来存储请求。

时间: 2024-10-11 10:11:34

客户端网络优化方法的相关文章

.net中使用ODP.net访问Oracle数据库(无客户端部署方法)

.net中使用ODP.net访问Oracle数据库(无客户端部署方法) 分类: c# database2012-01-05 15:34 6330人阅读 评论(1) 收藏 举报 oracle数据库.netcomponentsdll ODP.net是Oracle提供的数据库访问类库,其功能和效率上都有所保证,它还有一个非常方便特性:在客户端上,可以不用安装Oracle客户端,直接拷贝即可使用. 以下内容转载自:http://blog.ywxyn.com/index.php/archives/326

常用的生成客户端脚本方法

常用的生成客户端脚本方法: RegisterArraryDeclaration -- 添加javascript数组     RegisterClientScriptBlock-- 在 Web 窗体的开始处(紧接着 <form runat="server"> 标识之后)    RegiserStartScript-- ------- 在</form>前添加script代码块 RegisterStartupScript-- 在 Web 窗体的结尾处    Regis

rtx客户端绿化方法+组织架构更新延迟的解决方案

rtx客户端绿化方法: 1-复制客户端安装目录. 2-运行以下命令,注册dll文件和ocx文件,及rtx程序注册. rtx.exe /regserver ren Config.dll c.d For %%a in (*.dll) do regsvr32.exe /s %%a For %%a in (*.ocx) do regsvr32.exe /s %%a ren c.d Config.dll cd 361msgmgr For %%a in (*.dll) do regsvr32.exe /s

axis2的wsdl无法使用eclipse axis1插件来生成客户端--解决方法

使用jetty+axis2实现webservice服务端,且无需使用axis2命令生成服务端代码,只要services.xml配置实现类. 工程为gradle工程配置文件在src/main/resources/axis2/WEB-INF/services.xml: <?xml version="1.0" encoding="UTF-8"?> <serviceGroup> <service name="wifiecService

Github使用教程(二)------ Github客户端使用方法

在上一篇教程中,我们简单介绍了Github网站的各个部分,相信大家对Github网站也有了一个初步的了解(/(ㄒoㄒ)/~~可是还是不会用怎么办),不要着急,我们今天先讲解一下Github for windows(客户端)的使用方法,之后我们会以一个实例一步一步的来讲解Github. Github for windows(客户端)是什么 GitHub 使用 git 分布式版本控制系统,而 git 最初是 Linus Torvalds 为帮助Linux开发而创造的,它针对的是 Linux 平台,因

TortoiseSVN客户端使用方法

SVN对于程序开发来说是非常重要的东西,它是非常不错的版本管理工具,下面介绍一下TortoiseSVN客户端的使用方法. 工具/原料 TortoiseSVN 方法/步骤 如果没有TortoiseSVN客户端,可以去这里下载:tortoisesvn.net/downloads.html,根据自己的实际情况下载对应版本.   下载后安装,在开始菜单中就能见到下面的图标,说明安装成功,现在就可以开始使用TortoiseSVN了.   选定本地的一个文件夹存放从服务器下载的代码. 然后右击这个文件夹,选

oracle即时客户端安装方法

http://blog.csdn.net/magicboylinw/article/details/7025885 Oracle Instant Client(即时客户端) 安装与配置 oracleOracleORACLEpathPATHPathserviceService工具数据库服务器 一.下载 下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 这是Oracle

action向页面传递数据,拦截那些没必要传到客户端的方法。includeProperties

如果action的属性很多,我们想要从Action返回到调用页面的数据.这个时候配置includeProperties或者 excludeProperties拦截器即可.而这2个拦截器的定义都在struts2的json-default包内,所以要使用该拦截器的包都要继承自json-default. xml文件: <struts>     <constant value="spring" name="struts.objectFactory" /&g

Redis3.0集群crc16算法php客户端实现方法(php取得redis3.0集群中redis数据所在的redis分区插槽,并根据分区插槽取得分区所在redis服务器地址)

数据分区        Redis集群将数据分区后存储在多个节点上,即不同的分区存储在不同的节点上,每个节点可以存储多个分区.每个分区在Redis中也被称为"hash slot",Redis集群中总共规划了16384个分区. 例如:当集群中有3个节点时,节点A将包含0-5460分区,节点B将包含5461-10922分区,节点C将包含10923-16383分区. 每个key将会存储到一个唯一的分区中,每个分区其实就是一组key的集合,两者对应关系为:key的CRC16校验码%16384=