Thankfully, Jeremy Keith has stepped up to fill the void with Bulletproof Ajax. This book does not presuppose a heavy programming background. Instead, it is geared towards the web designer who wants to become more of a front-end developer. The prerequisites are: understanding of semantics, HTML and CSS. If that's you - good news! You already have a working knowledge of the Document Object Model, an essential piece of the Ajax puzzle. Who better to explain it, than co-lead of the DOM Scripting Task Force himself.
1. Plan for Ajax from the start.
2. Implement Ajax at the end.
"Just because you've hired a waiter doesn't mean you can fire the cook. Yet this is exactly what some Ajax applications attempt to do. Not content with having a waiter take orders and bring food, they get the waiter to do all the cooking too. Cooking should happen in the kitchen. Application logic belongs on the server. It's better for everyone that way. Your application will work more consistently when it's server-based. The browser environment is simply too unpredictable."
I also appreciated Jeremy's subtle sense of humor throughout the book: telling of the origins of the name Ajax, dating back to Greek mythology, and adding a tie-in with the name Jason when referring to JSON. If you didn't know, he's quite a trivia guru, especially when it comes to Star Wars Trivial Pursuit.
I applaud that Jeremy is using XHTML 1.0 Strict throughout this book, as opposed to XHTML 1.1 as in DOM Scripting. It avoids confusion over content-type: text/html vs. application/xhtml+xml. After all, the W3C themselves serve XHTML 1.0 Strict as text/html.
Overall, this book was a delight to read. It covers all the important aspects of Ajax, and even shows a few server-side examples written in PHP. Multiple techniques are addressed, including XML, JSON and innerHTML.
It gets you thinking, rather than ignorantly assuming that you're working in a controlled environment. Many server-side developers neglect accessibility and usability because they're too busy using bloated frameworks without understanding the underlying client-side principles. Quite frankly, I'm sick of it. Luckily, there's finally a book teaching the right way.
"Question the way you implement Ajax. Question the impact Ajax will have on your users. Question the need to use Ajax at all."