移动端的弱网优化

移动端的网络千变万化,存在各种异常的场景,比如网络环境2G、3G、4G、5G、wifi,比如地理环境地铁、野外。在上面的一些环境中如何尽可能的保证用户访问应用是一个优秀的开发需要考虑的事情。

我们知道一次http网络请求包括域名解析网络连接构建请求并发送数据传输数据解析。从上面这几点中我们可以逐点进行优化。

域名解析

DNS服务是网络连接前,将域名解析为IP地址,方便网络请求。DNS查询时会优先查询本地缓存,如果没有或者过期会向DNS服务器(一般为运营商DNS服务器)查询。

国内的网络环境DNS解析是经常遇到的一个问题,国内运营商提供的服务器经常会有DNS污染和墙中墙,导致可能会有各种问题,笔者就曾遇到过正常域名解析到国外IP,也遇到过域名劫持,导致正常服务不可用。

还有一点要注意的是:目前国内对IPV6的支持性并不是很好,笔者就曾遇到过部分区域用户不能访问服务的问题,后来定位是因为用户解析到的是IPV6地址,处理方案是优先使用IPV4地址。

HttpDns

httpdns是是可以绕过运营商域名解析的过程,httpDns不是使用DNS协议而是使用http协议,即直接通过IP地址带上待解析的域名向HttpDns服务器进行解析,可以提高访问速度也可以解决域名劫持问题。
如果公司没有能力提供httpDns服务,也可以使用第三方的httpDns服务。
HttpDns优化可以看这篇文章

多域名

之前我们公司没有httpDns服务,然后运维部门提供了多域名解决方案,如果客户端发现某个域名访问不同或者延迟很高,则切换其它域名,这种方案有一定解决网络问题,但是不可解决域名劫持问题,后来我们通过使用https和md5校验来解决域名劫持问题。

IP直连

直接客户端内置多个IP地址列表,直接通过IP地址进行网络访问。(不推荐)

网络连接

http协议是基于TCP协议的,所以需要三次握手,只有握手成功才建立连接进行数据传输。

http协议版本

使用高版本HTTP协议,在http1.1中可以支持一个TCP连接发送多个HTTP请求和响应,减少了建立连接的时间和延迟。

QUIC协议

http协议是基于TCP协议的,意味着发送http请求就需要先建立一个TCP连接,这样耗时,QUIC协议是基于UDP的,它拥有低延时的特性。

异常处理

根据网络环境调整超时策略,根据实际情况调整重试机制。

构建请求

客户端在发送请求前一般会对请求进行构建,在这时我们可以进行一些处理来进行优化处理。

缓存

针对一些实时性不是很高的数据设置进行缓存,根据过期时间和版本号判断是否过期没有过期则直接使用缓存数据。

图片

根据实际控件大小构建对应大小的图片请求。

数据传输

数据压缩

我们可以对数据进行压缩提高传输速率,其中我们常用的是开启Gzip压缩、压缩请求头和合并请求三种方案。

CDN

通过CDN我们可以提高访问各个数据节点的速度。

数据解析

数据协议

数据在传输的时候我们会生成对应的数据格式,我们也会按对应的格式来解析数据,目前使用的比较多的是xml和json。如果我们数据量大我们也可以使用谷歌开源的protobuf来构建数据格式,效率会更高。

应用层

除了在网络层对网络进行优化外,我们在应用层和用户交互的时候也应该考虑。

  1. 在一些需要用户等待的网络请求的时候我们应该给用户一些友好的提示,这些提示包括一些动画效果,针对一些不需要用户考虑的场景我们尽量使用后台服务去做处理。
  2. 如果有一连串的请求时,我们可以根据实际情况进行并行请求,而不要使用串行。
  3. 对于大文件的传输我们尽量使用断点形式,并记录传输的进行,方便断网进行续传。
  4. 针对大数据接口我们可以做分页加载。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值