Ajax may be new, but enabling technologies that allow JavaScript to transfer and manipulate XML data to and from a web server have been around for a while. This book provides best practices for web developers by investigating how others have successfully dealt with conflicting design principles. Readers will find sections on foundational technology patterns, programming patterns, functionality and usability patterns, and diagnosis/testing of Ajax applications. Ajax is all about usability, so the patterns in this book focus on delivering usability in the face of constraints, such as user capabilities and expectations, bandwidth limits, the stateless nature of HTTP, and the complexity of Javascript. Also, these patterns are a concise way to represent the Human Computer Interaction knowledge embodied in the many Ajax applications on the market.