I am implementing some UI functionality. I have a button that perform some short or long (time) action. I have implemented so logic: if action's execution time more then some in milliseconds, then code locking other action controls, otherwise (to avoid blinking) the code does not do this. My questions are:

  • What is the reasonable x value time can I use to change cursor to [wait] one?

I understand, if operation is too long ( more than few seconds) I have to show progress bar to inform user, that action is too long.

  • What is the x value2 when I have to display progress bar? Are these any metrics?

MS Windows 7 UX Guidelines recommends a busy cursor or other "activity indicator" for x > 1 second; they recommend a progress bar for x > 5 seconds. Gnome guidelines and the old Java Swing "advanced topics" guidelines largely agree, with Swing specifying the procedure for determining your observed x:

To decide whether to provide feedback on an operation, test how long the operation usually takes on the minimum system configuration that your application supports. Repeat the test at least 10 times, with different data sets or network loads. Provide feedback if the operation takes longer than 1 second in at least 10% of the tests.

| improve this answer | |
  • 1 second is a lot of time to wait. Maybe the time runs faster 3 years later. Sadly all your references are not available any more. – Wolf Nov 17 '14 at 11:57
  • @Wolf: References updated as best as I could. Maybe time runs faster 3 years later, but, in my experience, feedback of activity has gotten worse, as mostly seen in web and mobile apps. – Michael Zuschlag Nov 17 '14 at 13:38
  • @MichaelZuschlag Thanks a lot for updating the refs :-) – Wolf Nov 17 '14 at 13:48

Users think that an action executed about 20 milliseconds after a button click is instantaneous. Slower actions should definitely show a waiting cursor or some other form of feedback. We use a generic progress bar with filling timeslots for all actions >100 milliseconds. Really slow actions get a progress bar or are executed on a background thread.

| improve this answer | |
  • 1
    Where did you get the 20 millisecond figure? – Patrick McElhaney Oct 18 '11 at 0:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.