用户在使用APP时,存在以下复杂网络环境:
- 网络有2G\3G\4G\WIFI ,各种网络之间切换 等;
- 移动/电信/联通提供的网络制式不太相同;
- 用户使用场景复杂,如地铁/电梯/地下通道/地下车库 等;
综上,APP需要处理 网络异常、网络超时、重连机制、缓存机制 等特殊场景。
异常处理:
当网络异常是,未正常收到服务端的数据,需要做容错处理,否则可能出现应用崩溃或者闪退;
超时处理:
网络加载需要时间,由于人类的心理反应,如果等待的过程中给用户进度条反馈或者loading,比页面一片空白要好过很多,因为用户有期待目标(是不是稍微跟产品挂钩了)。
如果服务端一直没有返回,时间过长而没有给用户反馈的话,会把用户的耐心磨完。
调查显示:用户所能忍受的最佳响应时间是2s,一般情况下超时时间设置为5 s,如果时间超出要给用户一个反馈。
当然了,超时时间统一设置为T,这是不是太傻了 。
如果当前是2G网络,超时时间设置为5s是不是稍微有点短了,
如果当前为4G网络,且网络状态良好,超时时间设置为5s是不是过长了;
所以是不是可以根据不同的网络制式来设置超时时间呢?
重连机制:
是否有重连机制,需要根据具体需求来定,
比如聊天功能,网络较差导致网络断开,当网络连接后,一般情况下都需要重连机制,因为用户在聊天页面时想收到及时的信息。
缓存机制:
是否有缓存机制,也需根据需求而定,
比如资讯内容类,并不是所有的都需要做缓存机制。
就资讯类模块而言,如果网络不好或者断开时,页面显示的是之前加载过的内容,用户就可以浏览之前的动态,而不是一直在等待。
不同网络环境下速度,测试时可参照设置: