AJAX (Asynchronous JavaScript and XML)


The classic web application model works like this:
  1. Most user actions in the interface trigger an HTTP request back to a web server.

  2. The server does some processing—retrieving data, crunching numbers, talking to various legacy systems—and then returns an HTML page to the client.
It is a model adapted from the Web’s original use as a hypertext medium. This approach makes a lot of technical sense, but it does not make for a great user experience. While the server is doing its thing, what is the user doing? That’s right, waiting. And at every step in a task, the user waits some more. Once an interface is loaded, why should the user interaction come to a halt every time the application needs something from the server? In fact, why should the user see the application go to the server at all?

An AJAX application eliminates the start-stop-start-stop nature of interaction on the Web by introducing an intermediary AJAX engine between the user and the server. It seems like adding a layer to the application would make it less responsive, but the opposite is true.