2SIMPLE

我们已经回来

响应问题

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

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

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

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

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

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

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

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

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

Written by Datou

五月 8th, 2007 at 10:41 上午

6 Responses to '响应问题'

Subscribe to comments with RSS or TrackBack to '响应问题'.

  1. 我觉得你第一个例子或许只能当个例子。
    拿我们楼下破电梯来说,尽管电梯间里有分众的广告电视,尽管排电梯的时候大家会互相聊天打屁,然而在等待几分钟电梯还不下来之后,大家关注的问题还都是电梯,一致抱怨破电梯。

    我的意思是,当性能差到一定的时候,就算把用户注意力暂时移开,等到返回的时候,他还是会感到焦燥。在转移注意力的同时必须真的做些什么事情来改善性能。

    cobalt

    2007/05/08 11:32

  2. 我知道一个理论–“圈”,
    简单点说,人们都在一个个的圈子里生活思考,而且圈子也是各个都不一样,人们都习惯在圈内解决问题,鲜少尝试圈外解决问题~~但实际上圈子外面的解决办法千千万万,而且是进步之道。。

    gaia

    2007/05/11 10:09

  3. 嗯,是这样,局部的信息不对等不如跨圈的信息不对等严重
    http://2simple.cn/2006/03/blog-post_08.htm

    Datou

    2007/05/11 10:33

  4. 转帖了你这篇,嗯,还是应该告知一下主人。

    Windy

    2008/11/24 17:04

  5. Windy大神都过来了,荣幸,随便转

    Datou

    2008/11/24 17:10

  6. haha 谢谢,幸亏我不是跳过来的。。。。

    Windy

    2008/11/25 14:06

Leave a Reply