首页 > 技术观点 > 网站建设 > 正文

用户体验:响应问题

2009-05-26

先说个故事,某大楼里的职员抱怨电梯的响应速度太慢,物业就请来电梯公司派人来解决这个,电梯公司派出一个研究员,这个研究员在大楼里转了两天,最后给出了一个很低成本很快速的解决方案,实施之后抱怨消失了。解决方案就是,在电梯间里安装一面镜子。

这是《GUI设计禁忌》里面的一个故事,这个故事揭示了两个问题:1、用户对响应很关注;2、解决响应问题不一定要真的提高性能。

在DMMT里面,人机界面都是静态的,界面和界面之间的切换似乎也不需要时间,所以DMMT也就没有遇到“响应问题”。实际的情况是,CPU、硬盘、内存、显卡、网络传输等环节加起来,计算机很难做到实时响应,如果考虑到用户可能在使用某个界面的时候,还在BT下载、听音乐、杀毒,实时响应就更没影了。

从用户这边看过来,用户希望在人机界面0.1秒(实际上人对连续动画的感知大概是0.065秒)之内给于正确的手眼互动反馈(键盘输入、鼠标指针的、窗口的移动、按钮被点击的响应等),在1秒(对话舒适间隔的最大值,为了让对话舒适的继续,这个时间点其中一方一定要说点什么)之内完成用户请求的操作(比如弹出对话框),在10秒(在这个时间单位里,人们经常会放弃或者中断一个大任务的执行)之内完成一个复杂任务中的步。

提高响应的四类技巧:
一、及时反馈
·立即确认用户的输入(0.1秒之内确认,先确认后执行)
·操做时间大于1秒时提供忙指示器或进度条指示器
·首先显示重要的信息(渐进式现实)
·虚拟高负荷的计算环境进行测试

二、并行处理
·将工作延迟,直到有时间/资源来执行
·尽可能超前工作

三、队列优化
·为提高效率重拍输入队列
·清除不再需要执行的任务

四、动态时间管理
·监测任务队列,在严重滞后于用户命令时调整策略或方法
·监测时间进度,必须要可降低质量或者数量赶上进度
·预测完成时间,决定如何去执行任务
·预测时间进度,与用户协商服务质量或决定是否还要进行此任务

响应的重要性并没有广为人知,DMMT也对其采取了忽视的态度,这导致了一个结果就是我和cobalt给糗事百科加上点击动画的时候大家眼睛一亮(很遗憾这个动画效果由于js兼容问题暂时被去掉了)。随着webapp的大潮,web界面中的响应问题将越来越凸显,再次推荐《GUI设计禁忌》这本书。