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…
2 Comments to Why is there no browser UI feedback when Ajax requests are in progress?
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
Category Cloud
amazon api app apple atom atompub australia banks beacon berlin blogging blosxom capeclear content copyright data dev drm dublin eclipse economy facebook firefox food football fowa future games google hardware identity internet ireland irish java junk linux mac media microsoft mobile movies music n800 net oauth openid opensocial opml osgi oss patents politics polls process rails railsconf rest rss ruby search soa social software spam sport tech travel trip tv uk us vodafone wayoutthere web2.0 web services why xml yahoo youtube
Recent Posts
Recent Comments
Archives
Photos
|


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.
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.