专栏名称: 人人都是产品经理
产品经理不再是一个单纯的职位,而是一种思维方式,这种思维是所有互联网人必备的,做互联网的人不能不懂产品,关注产品,改变生活。
目录
相关文章推荐
人人都是产品经理  ·  成为高阶产品经理:必懂产品生命周期 ·  昨天  
人人都是产品经理  ·  年薪40W!转AI产品经理后,我明白了有人带 ... ·  昨天  
产品犬舍  ·  纯银 2025 年的产品顾问合约更新 ·  昨天  
91产品  ·  小红书商业笔记避坑指南 ·  昨天  
51好读  ›  专栏  ›  人人都是产品经理

解析|移动应用数据加载的三层策略与模式

人人都是产品经理  · 公众号  · 产品  · 2017-09-05 08:00

正文


作者:王雪峰

全文共 3543 字,阅读需要 8 分钟


—— BEGIN ——


一、研究问题的方式


组合使用技术、交互和界面策略来解决具体问题及目标


用全面的思考来做出更好的决策,这三个层次的思考永远是相关的。


本文通过讲解这三个层次的常用策略,希望能驱动你更好的决策。


二、技术策略


因为加载的本质是通信的过程(此处只涉及数据传输,不涉及系统底层进程,但是原理相同),例如有些游戏进度条加载时会提示「加载不消耗流量」,此时的加载属于系统硬件加载,没有产生数据通信,所以暂不考虑。


1. 同步加载


(1)什么是同步?


我们来讲一个小朋友的故事:


有一天大雄正在学校做数学作业(当前任务),有个特别强壮的同学胖虎走了过来,把作业本猛的丢到大雄桌子上叫到「先把我的做完,我就在这看着你!」(收到同步任务),大雄对比了一下身型差距,敢怒不敢言,只好先拿过胖虎的作业本开始做(中断当前任务,开始处理同步任务),直到做完了胖虎的作业,很不情愿的交给胖虎(返还任务数据),等到胖虎美滋滋的走掉了,大雄才开始继续做自己的(继续之前的任务)。


这个持强凌弱的故事就和同步的原理类似:


同步加载请求执行某一任务,直至该请求返回数据之前,请求端什么也不干就在旁边等待。这种方式类似产品开发流程中的瀑布模型,产品设计之后才能交付开发,开发完成之后才能交付测试。


还有某些应用,有新版本更新时弹出一个模态提醒(一种必须操作的提醒样式),点击「更新」之后就在模态提醒内下载,此时不能返回不能退出也不能进行任何操作,除非你杀死应用进程。


(2)为什么用同步加载?


  • 即时性,加载完成/失败会立即得到反馈结果,上下步操作关联性强

  • 技术上更易于实现,避免了异步加载产生的各种资源利用和同步问题(比如在客户端更改某属性值,因为网络延迟,服务器没有收到更改消息,而客户端显示已经更改成功,于是去请求了其它数据产生错误。PS:真实情况要复杂得多)


(3)同步加载适用情况


  • 登录注册,提交订单,上传资料等下一步操作与当前操作相关的情况,俗称顺序操作(例如登陆之后才能发帖)

  • 扫码支付,修改重要资料等获得操作结果特别重要的情况

  • 产品开发资源不足的情况,程序猿开发异步是要工时的(乱加需求是要被打的哈哈)


2. 异步加载


(1)什么是异步?


回到刚才的故事:


大雄被人欺负心里很苦闷,晚上回家找到正在吃鱼的哆啦A梦,对它说「能不能给我做个道具收拾胖虎,等你做好叫我一声」(收到异步任务),然后就去做别的事情了,哆啦A梦抬头看看他继续吃鱼(继续之前任务),而大雄就等着什么时候收到道具收拾胖虎了(等待返还任务数据)。


异步加载在发送信息之后,继续执行下一步操作,等什么时候收到请求的信息,再进行处理。


举个不太恰当的例子,异步加载就相当于产品开发流程中的敏捷开发,现在可以研发工作和测试工作交叉进行了(同时开展,完成不同任务)。


在同步加载小节更新应用的例子里就是:


点击「更新」之后,下载任务跑到后台下载去了,你依旧可以在应用里随便玩,终于不怕突然点错什么卡住啦。


(2)为什么用异步加载


  • 有效的提升用户体验,界面跳转动画和异步加载会让用户觉得反馈很灵敏,增强操作的流畅度,避免用户被阻塞在等待界面产生负(bao)面(zao)情绪,但是操作之间关联性差,若异步处理不好容易让用户产生疑惑

  • 如果同步加载速度太慢,很可能会长时间停留在加载界面,让人欲罢不能(不过现在有些应用已经开始提供同步加载时的用户出口)


(3)异步加载适用情况


  • 只要不涉及重要资料和顺序操作的数据加载都适合异步加载

  • 大量图片/视频的页面

  • 大量item的列表页

  • 涉及大量数据计算的页面

  • 体量庞大的H5页面


3. 回调


(1)什么是回调?


简单来讲,就是你给别人发个邮件,他处理完之后给你回邮件,回邮件的过程就是回调。


微信登录就是典型的回调过程,在你的应用里点击微信登陆,然后调用微信,微信授权成功之后,再回调登录成功的信息给你的应用,你的应用就知道「噢,他登录成功了」。


(2)回调的意义


回调是异步实现的基础,回调实现了应用间数据传输,服务器和客户端之间的主动数据交互等。


在此就不多说了,在数据加载这里我们就按同步异步来讲就好。


三、交互策略


此处要注重强调一下,不同的交互策略运用了不同的技术策略,这是两个维度,并不是简单的一对一关系,要学会配合使用。


1. 启动页加载


同步加载时的常用策略是:加载完某些数据才能进入应用,适合对某些关键数据进行检查;例如检查用户身份信息,此种策略为了保证一些关键数据的可控性。


异步加载的常用策略是:进入应用内在加载使用的数据,例如进入应用再刷新首页,这种策略为了提高进入应用的速度。


2. 当前页加载


大部分都是的同步加载,要在当前页面完成数据加载,才能进入下一页面。网不好?那就在这呆着吧(; ̄ェ ̄)。


不过一般会在加载期间显示一些小动画,例如小菊花,来减缓用户等待的阻塞感= =。


在APP里,一般加载失败留在当前页面;而在H5页面里,一般加载失败,页面为空或报错。


3. 下一页加载


为保证用户体验,现在大多数应用都采用下一页面加载策略,毕竟在当前页面卡住和在下一页面卡住是两种不同的感受哦,用户心理如是也-_-#;


而且网络差导致页面加载过慢时,在下一页加载能一定程度上转移仇恨。







请到「今天看啥」查看全文


推荐文章
人人都是产品经理  ·  成为高阶产品经理:必懂产品生命周期
昨天
产品犬舍  ·  纯银 2025 年的产品顾问合约更新
昨天
91产品  ·  小红书商业笔记避坑指南
昨天
晚安少年  ·  我变美了。
8 年前
齐俊杰看财经  ·  改变人生的31个黄金思维
7 年前
物业观察  ·  6名租户、业主被警方依法拘留3天
7 年前