Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Busy cursors - why?

Can anyone give me a scenario where they think busy cursors are justified? I feel like they're always a bad idea from a user's perspective. Clarification: by busy cursors, I mean when the user can no longer interact with the application, they can only move their hourglass mouse pointer around and whistle a tune.

like image 373
Jesse Pepper Avatar asked Jan 03 '09 07:01

Jesse Pepper


People also ask

What does it mean when a cursor is busy?

A busy cursor means the application is busy, so don't do anything. To me, all such work should be done off the main thread allowing you to continue using the application. If possible, that's great, but some actions do not permit any other actions.

Why is my cursor flashing busy?

But a cursor that is blinking/flashes rapidly or flickers may indicate some problem with the mouse or mouse drivers, video problems or Anti-virus Software and Other Issues. This blinking cursor is quite annoying and makes day to day operation of the computer very difficult. This error can drive any PC user nuts.

Why do I see multiple cursors on my screen?

This issue could be due to in-correct mouse settings. If you have connected an external mouse, I would suggest you to either disable your laptop touchpad from Device Manager or disconnect the external mouse and check. Follow the below steps on how to disable touchpad. Press Windows + R and type “devmgmt.

How do you get rid of hourglass cursor?

Simultaneously press [Ctrl] [Alt] [Delete].


1 Answers

In summary, I think that the user should be blocked from doing stuff in your app only when the wait interval is very short (2 seconds or less) and the cognitive overhead of doing multi-threading is likely to result in a less stable app. For more detail, see below.

For an operation lasting less than 0.1 second, you don't usually need to go asynchronous or even show an hourglass.

For an operation lasting between 0.1 and 2 seconds, you usually don't need to go asynchronous. Just switch the cursor to the hourglass, then do the work inline. The visual cue is enough to keep the end-user happy.

If the end-user initiates an operation that is going to take just a couple of seconds, he's in a "focused" mode of thinking in which he's subconsciously waiting for the results of his action, and he hasn’t switched his conscious brain out of that particular focus. So blocking the UI - with a visual indicator that this has happened - is perfectly acceptable for such a short period of time.

For an operation lasting more than 2 seconds, you should usually go asynchronous. But even then, you should provide some sort of progress indicator. People find it difficult to concentrate in the absence of stimulation, and 2 seconds is long enough that the end-user is naturally going to move from conscious ‘focused’ activity to conscious ‘waiting’ activity.

The progress indicator gives them something to occupy them while they are in that waiting mode, and also gives the means of determining when they are going to switch back into their ‘focused’ context. The visual cues give the brain something around which to structure those context switches, without demanding too much conscious thought.

Where it gets messy is where you have an operation that usually completes in X time, but occasionally takes Y, where Y is much greater than X. This can happen for remote actions such as reaching across a network. That's when you might need a combination of the above actions. For example, consider displaying an egg-timer for the first 2 seconds and only then bringing in your progress indicator. This avoids wrenching the end-user from the 'focused' context directly to the 'waiting' context without an intermediate step.

like image 128
HTTP 410 Avatar answered Oct 06 '22 22:10

HTTP 410