| We thought we had found the Holy Grail of software development when we started building Web applications several years ago. Previously we had been developing thick client applications that required a lengthy installation process every time a new version of the company’s application was released. The application was deployed to several hundred users scattered across the country, and much to our dismay we had to watch as the complex and error-prone installation process continually caused headaches and angst for developers and users alike. Deploying an application through a browser seemed like a much more palatable option because it would eliminate the need to install software on the client computer. So, like many others, our organization moved swiftly to deploying applications on the Web.
Despite the relative ease of deployment, Web applications still had their share of issues. Most notable from a user’s perspective was the significant loss of rich interactivity provided by the user interface. Web applications were constrained to the basic set of widgets provided by HTML. Worse yet, interacting with the server required a complete refresh of the page, which was disconcerting to users who were familiar with rich client-server applications. We always considered this constant need to refresh the page a serious liability of Web applications and often experimented with ways to avoid a page refresh whenever possible; at one point, we even considered writing a Java applet that would handle the communication between the browser and the server. However, it soon became apparent that as more Web applications were deployed, users simply got used to the constant page refreshes, and our zeal for finding alternatives slowly faded.
Fast-forward five years. Even before the term Ajax was coined, asynchronous communication between the browser and server using the XMLHttpRequest object was creating a buzz within the developer community thanks to applications such as Google Suggest and Gmail. The XMLHttpRequest object has been available in Internet Explorer for several years, but now that it was being supported by other browsers, it was poised for a breakthrough. We added Ajax functionality to an existing application we happened to be working on at the time, and we were so impressed with the results that we thought, “Hey, somebody should write a book about this.” Thus, the seeds for this book were sown. |