Ajax, or Asynchronous JavaScript and XML, exploded onto the scene in the spring of 2005 and remains the hottest story among web developers. With its rich combination of technologies, Ajax provides a strong foundation for creating interactive web applications with XML or JSON-based web services by using JavaScript in the browser to process the web server response. Ajax Design Patterns shows you best practices that can dramatically improve your web development projects. It investigates how others have successfully dealt with conflicting design principles in the past and then relays that information directly to you. The patterns outlined in the book fall into four Ajax Design Patterns will also get you up to speed with core Ajax technologies, such as XMLHttpRequest, the DOM, and JSON. Technical discussions are followed by code examples so you can see for yourself just what is-and isn't-possible with Ajax. This handy reference will help you to produce high-quality Ajax architectures, streamline web application performance, and improve the user experience. Michael Mahemoff holds a PhD in Computer Science and Software Engineering from the University of Melbourne, where his thesis was "Design Reuse in Software Engineering and Human-Computer Interaction." He lives in London and consults on software development issues in banking, health care, and logistics. "Michael Mahemoff's Ajax Design Patterns is a truly comprehensive compendium of web application design expertise, centered around but not limited to Ajax techniques. Polished nuggets of design wisdom are supported by tutorials and real-world code examples resulting in a book that serves not only as an intermediate to expert handbook but also as an extensive reference for building rich interactive web applications." --Brent Ashley, remote scripting pioneer
Ajax Design Patterns is the third book I have read dealing with AJAX (after Head Rush Ajax and Pragmatic Ajax, both good books) and it is by far the most comprehensive dealing with this topic. Michael Mahemoff writes, in apparently his first book, an excellent introduction to the topic in the first three chapters and is worth reading even if you are familiar with Ajax. Though I would recommend reading either of the two books mentioned earlier first if you have little knowledge of Ajax, DHTML and JavaScript.
The majority of the book is the patterns grouped by foundational technology, programming patterns, functionality and usability patterns, and development patterns. The immense amount of patterns mentioned is a bit overwhelming to read from cover-to-cover (though I did this otherwise I would not have reviewed this book) though the benefit is to acquaint yourself with a plethora of interesting ideas (and several not-so-plausible) that could be beneficial to your Web 2.0 (this misnomer is more of a marketing term) development. The chapter of Development Patterns is a must read for developers discussing diagnosis and testing patterns.
I like the layout of each pattern with a Name, Goal Story, Problem Forces, Solution, Decisions, Real-World Examples, Alternatives and more. However, they really should have printed each pattern on the top of a new page instead of having it start at various places within the pages; this looks a bit tacky.
Be warned that the server-side code examples are in PHP (though almost all Ajax books tend to reference that so I do not mind). Other than that and certain layout issues I do not have many problems with this book (here is another book that could have benefited from a hardback edition). Though, I do think the Evidence (done by using three buttons to establish real-world evidence) was a bit arbitrary and sometimes silly (but I'll let you be the judge of that) and the book could have referenced more than six other books.
There are so many examples and references that all of these sites are a boon to building your software acumen (of course the rub is that relying on links in your book means that many of these will eventually be outdated). In fact the Appendix is the best resource I've seen (in print) for Ajax Frameworks and Libraries. I recommend this book to web developers who are serious about Ajax and learning existing and newer uses of this software paradigm.