等待是相当痛苦的,所以没有人喜欢运行缓慢的软件。等待意味着因为一些你不可控的东西,你投入了时间却什么也没有做。但是,等待是我们和计算机和软件交互时所不可避免的。事情不会“嗖”地一下就搞定了。你需要等待程序加载,等待网站下载,等待软件编译等等等等。

因为等待会给你的软件带来坏印象,你最好把它的影响降到最低。这里有两个办法(呃,全国皆知的秘密)。

第一个是最直接了当的,优化代码。你可以re-factoring,做缓存,这些能让你的程序跑的快点。想要降低用户等待时间,优化代码是一个很实诚且相当显而易见的方法。

第二种方法是什么呢?科科……你总是可以去做些骗人的事情的。与其着手解决问题的根源——运行效率低下的代码——你可以仅仅解决问题的表象——等待的消极感受。

等待时间带给我们最大的问题是不确定感——我们因为不知道到底要等多久而产生不确定感(或是说,有些时候,我们是因为不知道这玩意是不是还在正常运转而产生不确定感)。在软件里,这些不确定感已经用进度条和加载指示器(loading indicator)解决啦~

进度条

进度条显示你的处理进程已经完成多少了,以及还剩多少需要跑。你也可以目测进度条的前进速度,大概估计出还需要多久才能全部搞定。有时候,剩余时间已经计算好显示在那里了。

研究显示如果没有进度条,用户会感觉到的程序运行的时间比实际上更加漫长。这意味着如果没有进度条或是其他指示器,用户会觉得你的程序跑得很慢。

Firefox的下载进度条

加载指示器(loading indicator)

有时候一个进程可能只需要几秒钟。在这些案例里,不值得显示一个完整的进度条,但是依旧需要添加某种形式的加载指示器(loading indicator)。这种东西只是告诉你的用户什么事情正在跑——服务正在处理他们的请求,而且分分钟就可以搞定。没有指示器,用户就不能知道程序是不是还在正确运行——可能程序已经卡死了或是服务器根本没在处理他们的请求。

Firefox在加载页面时显示一个旋转的圈圈

如果不能让程序跑得更快,多关照关照你的用户,让他们的等待体验不是那么难以忍受。

- – 前田约翰, 简单法则

下次你设计你软件流程的时候,全面考虑下以上那些方案。优化你的代码是一个好主意,但是有些时候可能花费过多时间和精力,远远超过你能承受的。降低软件等待时间的消极影响是一个可行的选择。使用类似进度条和加载圈圈的指示器告诉你的用户软件正在运行,提示他们还要等多久。这不仅仅是一个简单的表面功夫,看着进度条会让时间过的快一些。

原文链接:Making Wait Times Feel Shorter

原文作者:Dmitry