The primary purpose of AJAX is to help make web applications function more like desktop applications. HyperText Markup Language (HTML), the language that drives the World-Wide Web, was designed around the idea of hypertext – pages of text that could be linked within themselves to other documents. For HTML to function, most actions that an end-user takes in his or her browser send a request back to the web server. The server then processes that request, perhaps sends out further requests, and eventually responds with whatever the user requested.
While this approach may have worked well in the early days of the Internet, for modern web applications, the constant waiting between clicks is frustrating for users and serves to dampen the entire experience. Users have become accustomed to blazing-fast responses in their desktop applications and are unhappy when a website can’t offer the same immediate response. By adding an additional layer between the user interface and the communication with the server, AJAX applications remove a great deal of the lag between user interaction and application response. As AJAX becomes more common in popular web applications, users become more and more accustomed to this immediate response, helping to drive more businesses to adopt AJAX methodologies.
Like most emerging philosophies of web development, AJAX has its share of detractors. One commonly leveled argument against AJAX is that in many cases it breaks some expected functionality, such as the use of the Back button, causing confusion. While some fixes exist for many of these breaks, they are rarely implemented to the extent that the behavior of an AJAX application conforms to the expected behavior of the larger browser.