AJAX includes:
Presentation content using XHTML and CSS
Dynamic display and interaction with XHTML (DHTML) using the Document Object Model (DOM)
Data interchange using strings, often in XML format
Asynchronous data retrieval using an http request object
JavaScript - to bind everything together
Client callbacks can be synchronous or asynchronous. In either case, the browser creates a new connection to send the callback to a remote server, thus the callback is out-of-band. The contents of the entire page do not need to be submitted, so the page lifecycle for a callback skips events associated with rendering page contents on the server. In addition, sending an asynchronous callback to a server permits an end user to continue working in the client application while the request is processed. When the response is returned, the appropriate content in the Web page is updated without refreshing the entire page. The diagrams below illustate the difference between synchronous and asynchronous communication between a client application and a server.