How many seconds need to pass before a 'loading bar' is warranted? [closed]
开发者_JAVA技巧
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this questionHello wonderful programmers of the world!
Forgive me in advance if you feel this is too subjective.
I'm building an app for the iPhone. At a certain point the user hits a button to process some data during which there is no animated feedback. Just the buttons disable and one button changes it's name to 'Processing data'. After about 5 or 6 seconds pass the buttons are enabled and life goes on.
Do you think I need some animation during this 'processing period?' Is there a rule of thumb about this? What would you say is the threshold for needing to include a 'loading bar' in your program? 5 seconds? 8 seconds? 2 seconds?
Thanks
Any action that doesn't give immediate, or almost immediate feedback is likely to cause the user to think that their iPhone, or worse, your application has frozen. Now, the fact that you have your button change to 'processing data' is good - That should mitigate most of that negative reaction, but I would add a simple animation just so your user feels like something is actually going on.
5-6 seconds feels like an eternity especially when there isn't any notification going on.
I would wrap any operation that could take a bit of time even if it may be less than a second or two with a loading / progress / notification bar.
It's the best policy for keeping the end user from guessing if something is going on and to help them avoid the feeling your app isn't doing anything, is too slow and/or unresponsive.
Here is an excerpt from Response Time Limits
The basic advice regarding response times has been about the same for thirty years [Miller 1968; Card et al. 1991]:
0.1 second is about the limit for having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result.
1.0 second is about the limit for the user's flow of thought to stay uninterrupted, even though the user will notice the delay. Normally, no special feedback is necessary during delays of more than 0.1 but less than 1.0 second, but the user does lose the feeling of operating directly on the data.
10 seconds is about the limit for keeping the user's attention focused on the dialogue. For longer delays, users will want to perform other tasks while waiting for the computer to finish, so they should be given feedback indicating when the computer expects to be done. Feedback during the delay is especially important if the response time is likely to be highly variable, since users will then not know what to expect.
The book "UI Bloopers" has guidelines on this. 0.1 second is enough to disconnect a response from an action. 1 second is enough to make a person in a conversation uncomfortable enough to start filling the gaps. 10 seconds is the maximum time we spend in unbroken thought on a single task.
Based on that they recommend if a delay will exceed 1 sec show a progress bar.
Anything longer than about half a second will feel to the user like your app has frozen. This time interval is a hard value to quantify, as it varies from person to person.
Do user testing to figure out the best time interval to wait for.
- You need to do some form of usability testing. A couple of friends running your app can tell you if you've made some incorrect assumptions about user behavior.
- If your app does some processing for more than about 0.1 (a value mentioned by others as well) then you need to make sure the user knows this and doesn't think the app "froze". For short delays (less than 1 or 1.5 seconds) an animated cursor should be just fine. If your app needs 5 or 6 seconds then you should use a progress bar.
The trouble with progress bars is that they need to show change. They don't really help if they're stuck at one third for 5 seconds and then fill completely in the last second. Make sure they are always "progressing" :)
精彩评论