Show an animated indicator of how much progress has been
made. Either verbally or graphically (or both), tell the user:
- What's currently going on
- What proportion of the operation is complete
- How much time remains
- How to stop it
As far as time estimates are concerned, it's okay
to be wrong sometimes, as long as your estimates converge on
something accurate quickly. But sometimes the UI can't tell how
far along it is. In that case, show something animated anyway
that is noncommittal about percentages. Think about the
browsers' image loops that keep rolling while a page loads.
Most GUI toolboxes provide a widget or dialog box that implements
this pattern, like Java Swing's JProgressBar. Beware of
potentially tricky threading issues, however -- the
progress indicator must be updated consistently, while the
operation itself proceeds uninhibited. If you can, keep the
rest of the UI alive too. Don't lock up the UI while the
progress indicator is visible.
If it's possible to cancel the operation whose progress is
monitored, offer a cancel button or similar affordance on or
near the progress indicator; that's where a user will probably
look for it. See the Cancelability pattern for more
information.
|