Jep Castelein of backbase has written a nice summary of current thinking on AJAX applications and latency. He points out that most AJAX developers are taking the easy way out, having synchronous logic execute when the user performs an action. This causes a delay as the data is fetched from the server, which is exactly what we are trying to avoid by using AJAX!
More importantly, it causes a delay that doesn’t give the user the right cues as to what is going on. Users are used to page refreshes and the way page refreshes are rendered in the browser. Some kind of cue ALWAYS needs to be given that the application is working on your request and is not broken.
I love some of the quotes he uncovered from various blogs about latency in AJAX applications.
The form assembly writes
What happens really is that XmlHttpRequest is not used for what it is good at: asynchronous, behind-the-scene, access to the server, but in the context of a synchronous transaction by the user. Users want instant feedback from an application, and a better way to achieve that is by freeing the application from its over-reliance on the server.
Harry Fuecks puts it more bluntly: “Synchronous requests are bad”.
And a thread on the server side sums up the economics of latency quite well, at least for consumer apps:
These days, bandwidth is cheap, latency expensive.