忙碌的游标 - 为什么?

时间:2009-01-03 07:21:33

标签: multithreading user-interface asynchronous busy-cursor

任何人都可以给我一个场景,他们认为忙碌的游标是合理的吗?从用户的角度来看,我觉得他们总是一个坏主意 。澄清:忙碌的游标,我的意思是当用户无法再与应用程序交互时,他们只能移动他们的沙漏鼠标指针并发出曲调。

12 个答案:

答案 0 :(得分:10)

总之,我认为只有在等待间隔很短(2秒或更短)的情况下才应阻止用户在您的应用中执行操作,并且执行多线程的认知开销可能会导致更少稳定的应用。有关更多详细信息,请参阅下文。

对于持续小于0.1秒的操作,您通常不需要异步甚至显示沙漏。

对于持续 0.1到2秒的操作,通常不需要异步。只需将光标切换到沙漏,然后进行内联工作即可。视觉提示足以让最终用户满意。

如果最终用户发起一个只需几秒钟的操作,那么他就处于一种“专注”的思维模式,他在潜意识里等待他的行动结果,并且他没有改变他的行动。有意识的大脑脱离了那个特别的焦点因此,阻止UI - 用可视指示器发生这种情况 - 在如此短的时间内完全可以接受。

对于持续超过2秒的操作,您通常应该异步。但即便如此,你应该提供某种进度指标。人们发现很难在没有刺激的情况下集中注意力,而且2秒足够长,以至于最终用户自然会从有意识的“集中”活动转变为有意识的“等待”活动。

进度指示器在他们处于等待模式时给予他们一些占据它们的东西,并且还提供了确定他们何时将切换回他们的“聚焦”环境的方法。视觉线索为大脑提供了构建这些上下文切换的东西,而不需要太多有意识的思考。

如果它变得混乱,你有一个通常在X时间内完成的操作,但偶尔需要Y ,其中Y远大于X.这可能发生在远程操作上,例如到达一个网络。那时您可能需要结合上述操作。例如,考虑在前2秒显示一个egg-timer,然后再引入进度指示器。这避免了在没有中间步骤的情况下将最终用户从“聚焦”上下文直接扭曲到“等待”上下文。

答案 1 :(得分:5)

重要的不是繁忙的光标,但重要的是,总是向用户反馈他们的输入后发生的事情。重要的是要意识到没有忙碌的光标,进度条,悸动,闪烁按钮,旋转指挥棒,跳舞小丑......没关系 - 如果你没有它,电脑只是坐在那里什么都不做,计算机对用户来说很糟糕。

每个用户操作的即时反馈非常重要。

答案 2 :(得分:4)

当用户在操作完成之前无法执行任何操作时(包括退出应用程序),您将显示忙碌光标。

我觉得有趣的是你没有在Web浏览器中看到忙碌的游标 - 也许这就是为什么人们非常喜欢它们。

不,等等,我有更好的答案。 计算机正在考虑时显示忙碌光标

答案 3 :(得分:4)

我认为你可能是对的:在一个不错的异步应用中,你永远不需要显示一个忙碌的光标。即使最后一个操作正在完成,用户也可以始终执行某事

那就是说,有时像Netbeans或Eclipse,甚至是Visual Studio这样的Java应用程序,没有忙碌的游标,没有希望。但在这种情况下,繁忙的游标可能也没有多大帮助......但我认为你是对的:繁忙的游标来自应用程序的非多线程时代。例如,在Flex应用程序中,EVERYTHING是自动事件驱动的回调,因此设置一个忙碌的游标只会毫无意义(当然,尽管可能)。

答案 4 :(得分:2)

当一个人点击Web浏览器上的“刷新”按钮时,必须立即显示忙碌光标,告诉用户让他们知道正在加载页面。

我认为Don't Make Me Think表示人类可容忍的加载时间是零秒。

Google说:

  

<强>响应

     

可以编写获胜的代码   世界上每一次性能测试,   但这仍然让用户感到火热   当他们试图使用它时愤怒。这些   是不是的应用程序   足够敏感 - 感受到的   呆滞,挂起或冻结   重要时期,或需要太长时间   处理输入。

答案 5 :(得分:2)

它有两个目的:

  1. 指明用户发生了什么事。
  2. 表示用户现在无法做任何事情。
  3. 繁忙的光标是关于操作的更好信号而不是什么。为了更持久的操作,应该使用更好的东西。例如,当检索页面时,浏览器仍然可操作,甚至还有一个按钮来停止操作。由于用户界面功能齐全,因此无需使用忙碌光标。但是,即使在过渡阶段的这种情况下也可以使用忙碌光标,例如开始操作或停止操作时。

答案 6 :(得分:0)

我尝试在可能需要0.5到3秒的任何操作上使用它们,对于更长的操作,我认为应该使用具有足够信息的进度指示器。

答案 7 :(得分:0)

我至少注意到Fedora 8,当应用程序设置“忙”光标时,实际显示“忙碌交互”光标。我想这是因为系统仍然响应鼠标输入(如拖动窗口等)。顺便说一下,在linux上显式选择“busy interactive”游标很棘手: http://www.pixelbeat.org/programming/x_cursors/

答案 8 :(得分:0)

我认为忙碌光标唯一能做的就是通知用户......

  

我不是完全无视你,我只是做了一些可能需要一段时间的事情

答案 9 :(得分:0)

我会将它们用于快速完成事情,比如半秒钟之内。如果任何时间超过该时间,则应弹出进度对话框,或者状态栏或界面中的其他位置应显示进度条。

如果操作耗时太长,用户应该始终可以取消操作。

响应评论,繁忙的光标只能在半秒钟左右可见,因为一旦进度对话框启动,它应该变为其中一个“半忙”光标,或者只是正常的箭头光标

除非在极端情况下,你应该避免使用忙碌的光标,如果你认为你需要一个,那么再考虑一下并重新设计。

答案 10 :(得分:0)

虽然绝对有必要提醒用户您的应用程序正在执行某些操作,但繁忙的游标仅在处理的前几秒有用。如果延迟超过15-20秒,则必须提供其他内容,例如进度条,状态消息,消息框等等。人们认为你的软件在一分钟左右就锁定了,并试图终止它。有时,整体视觉提示与忙碌光标一样重要。

例如,通过临时更新选项卡直到所有操作完成,可以修复在选项卡中的操作完成之前没有适当突出显示的选项卡的应用程序。有时候,只需要进行一些优化或重构就可以清除这种可怕的用户界面响应。

答案 11 :(得分:-1)

例如,表示您已点击某个按钮,即使尚未处理该事件。如果没有某些指示,用户可能会再次尝试单击该按钮,从而导致各种不良行为。