going to change the synchronous XmlHttpRequest call to an asynchronous call. Making Your Ajax Application Asynchronous Asynchronous requests allow the application user to continue his work in the browser while waiting for the server response. If the user cannot proceed with his work unless the server responded, then still using an asynchronous request is a better approach than synchronous call. For example, instead of the user staring at a pressed button, you can show him some nice "end-user entertainment" widgets, like a progress bar. For this part of the hands-on we are not going that far and instead only change the synchronous call to a asynchronous call. 1. Replace the existing JavaScript section that the defines the doTheAjaxThing() function in the helloAjax.html page with the following to make the request asynchronous: The differences between this asynchronous request handling and the previous synchronous call are highlighted in bold. Because the browser doesn't wait for the server to respond, this example uses a JavaScript callback that is a function called by the XMLHttpRequest object on state change. There are four states of interest: 0 The request is initialized, which is the state before the open() method is called on the XmlHttRequestObject. 1 The request is ready to be sent. 2 The request was sent and is processed on the server. 3 The server processes the request 4 The response is complete and available for further client side handling The state you are most interested in is indicated by a state value of