前言
全部课程
十一放长假,小强和小明结伴,去某知名景区游玩。当两人乘车,到达景区入口时,瞬间被眼前的一幕惊呆了。在景区的入口处,排了一条长长的队伍,放眼望去,足足有几百米长。小强和小明立马加快了脚步,迅速加入到了队伍之中。
过了好一段时间,前面的队伍仿佛一动不动。在太阳的照射下,很多人都大汗淋漓,但确没有人知道前面究竟发生了什么。这一幕,有点像我们使用的某些软件产品,当程序运行遇到问题时,比如内存不足的卡顿,或是网络不畅导致的内容加载慢,软件没有给出任何提示信息,于是,我们只能对着转圈的加载图标干着急。
强制终止
一直旋转的加载图标,或看似不动的进度条,是我们在使用软件产品时,最不愿意看到的事物。因为只要这两类控件出现,就意味着,我们需要拿出时间和耐心去等待。

如果进程状态,长时间没有响应,用户往往会失去耐心。他们的下一个操作,大概率是要选择退出这种“无响应”状态。但是很多软件在设计时,并没有在应用层面,为用户提供终止进程状态的选项按钮。于是用户只能借助系统的强制退出功能,终止应用程序的运行。

角色缺失
当进程缓慢或者无响应的时候,为用户提供合理的解决方案,这本是设计人员的分内之事。但是,很多设计者在进行方案设计时,对一些异常状态的处理,往往缺乏足够的关注。在许多设计师的设计稿中,你甚至都找不到,关于网络异常的任何应对方案。
事实上,很多应用设计中,关于网略异常的应对策略,都是由软件开发人员“随便”定义的。而研发人员的关注点,多是程序是否能够跑通,而选用何种策略,对用户更加友好,他们并不擅长。所以,当进程缓慢或者无响应时,我们会发现很多产品,都会出现相同的问题。
好的设计
自由终止或者退出程序,本应是用户使用产品的基本权利。这种权利应该被最大限度的保障。很多优秀的设计方案,会在应用进程缓慢或不响应时,给用户提供一个即时终止进程的操作按钮,这种方案优化,对于研发投入来说,并不费时。但是对于用户而言,足够好用。因为这是在应用层面,为用户提供了一种即时退出的功能选项。
在一些图片管理软件中,比如美叶Pro,用户会有即时上传大量图片的需求。当大量图片上传进程缓慢时,用户可以在任意时间点,通过终止按钮,选择结束本次上传。

在一些网络连接应用中,当请求连接启动后,会为用户提供一个终止请求连接的选项按钮,当应用长时间无法连接信号源时,用户可以通过终止按钮,随时取消连接请求。

更明确的示意
很多设计者,喜欢通过使用加载条,来标识进程状态。但当进程缓慢时,用户很难借助进度条图形,对程序状态,做出准确判断(不响应还是进度慢)。于是很多设计方案,会在原有方案基础上,增加一个百分比显示字段,这样,当图形控件示意不明显时,用户可以借助数字变化,做出精确判定。

即便是不为用户提供百分比字段,通过合适的文案引导,同样能够减缓用户的焦虑。例如,在进程的不同节点,告知用户,当前正在执行何种任务,以及接下来将要完成什么,都能帮助用户很好建立预期。
有些表单的填写环节,会通过进程组件示意用户,这张表单填写,包含哪些任务环节,以及目前用户的操作,正处于那个任务节点上。有了这些信息,用户在填写表单时,可以形成总体上的把控。

当任务执行,可能需要较多的时长时,提前告知用户完成这一任务,可能需要花费多长时间,同样可以为用户决策,提供参考。比如当我们在Mac电脑上,安装系统更新时,系统会在用户执行安装前,告知用户本次更新安装,可能需要花费多长时间。有了这些提示信息,用户可以很方便的做出决定,是立即执行安装,还是以后,找个更合适的时间来完成安装。

最后,我们再回到开始的故事里,如果景区能够通过广播,或者显示屏,告知排队者,前方出现了什么问题,导致进程缓慢,以及排队者需要做些什么,能加快入园的进程。有了这些信息,可以很好的帮助排队者减缓焦虑。比如,给出如下的提示信息,“前方因为入园人数过多,园区采取临时限流措施,下一批入园人数将控制为XX人,入园时间大概是XX分钟之后,请排队人员提前准备好身份证,来提升入园效率”等。这样,每一个排队者都可以做出决定,是留下来继续排队,还是换个景点去游玩。