常见的优化方案
减少数据的重复性
减少数据的重复性也就是缓存请求内容。每次请求数据的时候根据服务端的标记(ETag或者Last-Modified)判断服务端数据是否更改,如果没有更改,就使用本地缓存的数据,一般通过NSURLCache实现。参考链接
增加请求的可靠性
请求失败后不立刻提示用户请求失败,而是再次发送请求,或者缓存请求,在网络状况好的时候发送缓存好的请求。参考链接
缩短请求时间
一般来说在App内用域名发送请求都要经过DNS解析出ip,然后再根据ip去拿对应的资源,这个过程中,如果LocalDNS中存在这个域名对应的ip,就会直接返回这个ip,类似于App内做缓存。如果不存在,才会去权威DNS查询改访问哪个ip,然后查询到的ip会在LocalDNS中做缓存。也就是说,如果我们要访问新浪http://api.weibo.cn,如果LocalDNS里面有该域名对应的ip,就直接返回了ip了。参考链接
压缩请求内容
压缩请求内容就是对传输数据进行压缩,比如将图片的格式改成更小的WebP格式来传输。

网络环境优化,深度优化
2G、3G、4G、WIFI 环境的延时和带宽都不一样。智能手机(主要是Android、iOS)的系统省电策略,导致网络可能被阻断,甚至进程被杀死,功能没办法在后台继续工作。移动网络的信号跳变、抖动很难预测(甚至在你转身的瞬间,信号可能会立马由强变弱)。 参考链接