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?

2 Answers 2


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.

  • 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, 2014 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. Nov 17, 2014 at 13:38
  • @MichaelZuschlag Thanks a lot for updating the refs :-)
    – Wolf
    Nov 17, 2014 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.

  • 1
    Where did you get the 20 millisecond figure? Oct 18, 2011 at 0:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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