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

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…

Thursday, June 28th, 2007 ajax, browsers, firefox, usability, xhr

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

  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. Paul Browne - wiki article on Ajax on June 28th, 2007
  3. 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.

  4. John on June 28th, 2007

Leave a comment

What I'm Doing...

  • Smartest Guys in the Room (the Enron documentary) is astonishing. I wonder if there are more Enrons out there (outside banking that is!) 10 hrs ago
  • @paulca if the service and your id provider both support the OpenID Simple Registration Extension then it should work - http://url.ie/r4y 4 days ago
  • @paulca I've been to the recent meetups, good couchdb talk btw, will be at the next one too. Not yet taken getexceptional for a real spin... 4 days ago
  • @topgold Try Nassau St (3rd or 4th bus stop down) or outside Budget Travel on O'Connell St, routes 46*, 10*, 145)... 4 days ago
  • @desdublin Des, save yourself! I'll go for some pints+nosh with you! Or else promise to drive wherever you were jogging to! 5 days ago
  • More updates...

Posting tweet...

Blogroll

LinkRoll

Recent Links:

Archives

Photos

ElectricPicnic08-1213

More Photos