Home > ajax, browsers, firefox, usability, xhr > Why is there no browser UI feedback when Ajax requests are in progress?

Why is there no browser UI feedback when Ajax requests are in progress?

June 28th, 2007

A common user interface design concept in software user interfaces is the provision of feedback to the user when a user event (keystroke, mouse click etc.) may take some time to process. Jacob Neilson provides excellent guidelines on this topic in Chapter 5 of Usability Engineering.

Internet browsers have always provided visual cues to the user when documents are being loaded from a remote server. Firefox, for example, provides two visual cues to the user when loading resources:


The spinner in the top right corner


The status and progress bar in the bottom left corner

However we now have web sites such as Google Mail that typically serve a single document. The ‘main’ HTML document uses many Ajax requests to update the existing document content after loading or when events such as user mouse clicks occur. The intent here is to provide a more interactive experience for the user by eliminating full page loads which can be slow and distracting.

However, sending many Ajax requests and dynamically updating the page DOM can still be slow so the requirement to provide feedback to the user remains. Google Mail, for example, displays a little indicator in the top right of the page:


GMail loading indicator.

Google Reader provides something similar:


Google Reader loading indicator.

Wouldn’t it be better if the browser UI provided this feedback? Given that the browser provides the implementation of the underlying XHR (XMLHttpRequest) API it knows when XHRs are in progress. The browser could also enable the Stop button to allow the user to decide to cancel current requests.

Seems like it would be a useful enhancement to me…

aehso ajax, browsers, firefox, usability, xhr

  1. June 28th, 2007 at 15:03 | #1

    No excuse not to provide the visual feedback – most of the Ajax frameworks (including Java’s Struts 2) make it easy for you to provide this visual ‘loading’ feedback.

  2. June 28th, 2007 at 15:39 | #2

    Paul,
    Absolutely, feedback should be easy for developers to code into their application. I am just wondering why the browser runtime doesn’t do this automatically – after all it knows that the requests are being made.

    Doing so could save script frameworks and developers from the bother of tracking progress of XHR requests in order to report feedback via various DHTML/CSS based ‘loading’ indicators. More importantly, the browser would be reporting feedback via a well-known uniform interface. Users like uniform interfaces – over time they learn where to find them, how to interact with them and they learn to trust them.

    In fact, such a uniform feedback UI (currently spinner and status/progress bar) could also display feedback related to general script runtime execution. I’ve often found myself wondering if the page is ‘doing anything’. A visual cue to the user that the browsers script runtime(s) threads are very busy (and that the page content may therefore be about to change) would not be a bad thing IMHO.

  1. No trackbacks yet.