23

We should do whatever we can to make our apps and websites as fast as possible, but there are some times when there is nothing that we can do to speed up some process, and so our customers just have to wait.

What are some best practices or ideas to improve the UX of this waiting time?

To clarify, I mean situations where:

  • the waiting time in the order of 2-6 seconds
  • there is no way of precaching or calculating the data ahead of time
  • basically there is nothing that can be done to make things actually faster
6
  • 2
    I mean this in all honesty -- are you sure that the UX in this situation can be improved? The UX improvement would be to do the things you said can't be done (and I believe you), but distract/entertain may not be an improvement, rather just a "lesser evil to deal with", and only depending on your point of view (e.g. seeing a quote as a distraction, that I then couldn't finish reading, would suck more than seeing a spinner until the data/next step was ready).
    – jcmeloni
    Apr 15, 2012 at 14:47
  • I'm sure it varies a little from person to person, but waiting and watching a spinner for 5 seconds isn't something that I imagine improves the UX for most people.
    – JohnGB
    Apr 15, 2012 at 14:57
  • 1
    There's some iOS/Android app that lets you play Tic Tac Toe while it's installing...was it Basecamp?
    – Ben Brocka
    Apr 15, 2012 at 16:16
  • 4
    I think modern video games take care of this issue really elegantly. They often show imagery related to the level you are about to enter, or play some kind of briefing for your mission. It's not particularly useful, but it makes the wait seem much shorter.
    – musicfreak
    Apr 16, 2012 at 8:25
  • 1
    The purpose of doing something is not to distract the user, but to indicate "this is actually working, not hung". I.e. reassure user that progress is being made. If you can calculate an accurate progress, then show a progress bar. Don't show a progress bar if you can't do it accurately; e.g. 15 seconds to reach 99% and then 5 minutes to go to 100.
    – Kaz
    Apr 18, 2012 at 23:46

8 Answers 8

23

There are many things you can do in such situation. Two obvious things that come to my mind:

  1. Provide some distracting animation (time goes faster when user is distracted, check the Foursquare's animation they've used in their iPhone app).

  2. Show some funny quote, interesting fact or tip that could be if not useful then just entertaining and appropriate in the context of your website content.

4
  • 2
    +1 Fun facts was the first thing that came to my mind when reading the title of the question Apr 15, 2012 at 12:46
  • 1
    One app on iPhone called Sonar shows quotes by Mitch Hedberg while you are waiting for results. I love it--but unfortunately you don't always get enough time to read the entire quote! If possible, provide a way for the user to read all the quotes they have seen.
    – Andrew
    Apr 15, 2012 at 13:43
  • There was a question on Stack Overflow with suggestions for entertaining loading messages, but it has since been deleted. Anyone know if there is a 'cache' of it anywhere? Apr 16, 2012 at 8:34
  • the quote “reticulating splines” comes to mind
    – Agos
    Apr 19, 2012 at 20:39
10

This paper [1] provide a survey on whishes of users regarding progress bars and alternative activities.

47% of the participants mentioned staying idle for short waiting period (<5s), while 37% of the participants reported switching to a temporary activity. However, 65% answered that they switch to other activities for longer wait (> 15 s). Surprisingly only 50% preferred to do something else when the waiting period was more than 1 minute.

It also provide hints for alternative activities

Desired Activities when Waiting In work settings, 60% of our participants answered that they would prefer to stay in context and perform a work related activity or manage their to-do list and calendar during a wait of more than 1m. During a medium waiting period of 15s, 40% of the participants would rather perform a passive activity such as getting information about the program waiting or about the weather or traffic. Only 15% of our participants mentioned that they would perform similar passive activities for short waiting periods. At home, 67% of our participants favored activities such as reading twitter or news feeds, in particular for longer waiting periods.

[1] C. Hurter, A. Girouard, N. Riche, and C. Plaisant. 2011. Active progress bars: facilitating the switch to temporary activities. In Proc. of CHI 2011. ACM, New York http://doi.acm.org/10.1145/1979742.1979883

1
  • So my interpretation from this research is don’t try to distract or entertain the users. Instead, make it easy for the users to find their own distractions and entertainment. (1) Be modeless or semi-modeless -allow the user to look at other things in the app while waiting, (2) Keep the progress area small so there is plenty of window and screen space for seeing other things of interest both with your app and with other apps, (3) avoid gratuitous animation that cannot be ignored. Apr 16, 2012 at 14:42
9

Preloaders are the best things. There are many kind of preloaders and it helps to let understand users that something is loading and nothing crashed.

Then you can think to entertain users showing a funny or creative preloader.

Take a look here. Are flash based but you can do that using other technologies like jQuery.

6
  • Some interesting examples. How would you handle it if you weren't sure how long it would take (anything from 2-6 seconds) and you had no way of knowing how far you were until you had a response?
    – JohnGB
    Apr 15, 2012 at 14:35
  • You can plan a fix starting animation of 3 / 5 seconds and use a dynamic percentuage bar. As animation does not bother waiting Apr 15, 2012 at 15:13
  • +1 for coming up with this entertaining and inspiring example Apr 15, 2012 at 16:42
  • +1 for the suggestion, -1 for the productivity it cost me watching it...wait, just one more.... :) Apr 15, 2012 at 19:59
  • @WonkotheSane eheh, me too. Spent lot of time watching it Apr 15, 2012 at 20:03
5

Click the "UI wireframe" button on the answer form. Balsamiq will come up, and while it loads, UX-related quotes are displayed on the screen. I think it's a great example for this.

enter image description here

2
  • Only problem is I've just done it and not been able to read the quote. Very annoying. Its good, but I'd prefer a "continue" button to come up once its loaded so I can read the quote completely if I want to. Similarly a checkbox "continue automatically on load" would be a good idea when I get bored of reading the quotes. Apr 16, 2012 at 15:40
  • Yes, the implementation could be better, the quotes disappear too quickly. However, if we're redesigning, we need not to forget that it is a preloader after all, rather than a quote viewer :). So I'd have it disappear by default and let the user stop it if he likes, rather than having it stopped by default and making the user click to continue. Apr 16, 2012 at 16:30
4

I think users are accustomed to progress bars and wouldn't mind waiting for them. Anything entertaining, something they had to read, etc would just distract them. Also like mentioned, I'd be more upset if there was a quote I only read half of.

2

I know this is somewhat pedantic to do, but you can always show various hints about how to use the application effectively (hopefully non-obvious ones). I know tons of video games provide hints on gameplay and strategy while waiting for a certain part of the game to load, so the technique is fairly widely used and more relevant than the "change the color of the rotating hourglass every time you click it so you feel like a ten-year-old!" type of strategy.

Obviously there are some apps where this will not be very effective, but for those that are very feature rich it can make your app much easier to use. Plus it shouldn't be too difficult to implement, and you can always show provide a box that the user can check if they don't want to see them anymore.

1

As stated above, preloaders or loaders that let the user know what is going on are the way to go. Sometimes an "attract loop" will work as well, but that is more for idle times or kiosks.

An application is a dialogue with a person, so strange pauses where the user may be confused or left waiting without knowing what's going on is going to create a suboptimal experience for the user. This is evolving every day, the more times goes by, the more needy the user will become.

Think of your user like a really needy girlfriend. She always needs to know what's going on. She always needs reassurance and attention. Otherwise she'll find it somewhere else... there are a lot of apps in the sea.

One thing I can add to this is to make sure you are really thoughtful about the way you are breaking up your content and loading. Don't preload a whole site unless you have a good reason to. But at the same time, don't make every little move load something, it'll make for a choppy experience. I'm always leaning toward the side of only loading what the user wants when the user wants it, making the experience a lot more snappy, taking from the Ajax sort of paradigm.

Oh, and as for what the preloader should be... You should really set your standards high. Perhaps it could be something informational that enhances the usability of your site, or the current user's flow. Maybe it's a really catchy logo that further engrains the brand in the user's mind. Maybe it's humorous, or and impressive animation that somehow flows well with the content the user is waiting for. Just because it's a preloader doesn't mean it should be boring or overly informational, like a 59% ------> sort of thing.

1

Airline ticket websites have to search many combinations to find the cheapest flights for your set of parameters. Apparently visitor satisfaction was highest if the webpage conveyed information that it was "working hard" to satisfy your query, by showing pictures of airlines being searched in an interstitial.

1
  • I was just thinking this. I like it when it tells me what exactly it's doing at each step.
    – richard
    Mar 21, 2018 at 17:45

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.