The goal of the book “Practical JavaScript, DOM Scripting, and AJAX projects” illustrates what it takes to create an application solely in JavaScript.  This book discusses projects in different genres: using mashups to pull external data, creating a calculator, creating and playing a game, creating widgets, setting up a custom validation scheme, setting up a drag and drop shopping cart, and more.

Each chapter sets up the application from scratch, so each chapter isn’t building upon itself to create one large application.  For each project, the author provides the CSS details, the JavaScript architecture and HTML markup, and the third-party JavaScript library information.  Every project has a new library, such as the following: Dojo, Rico, Prototype, YUI, MooTools, and a few others.  When discussing these libraries, the author gives a brief overview, something I found beneficial, but an understanding of these libraries is where I wanted more.  Of course, a book can only cover so many topics, and thus I found myself exploring these libraries on my own.

Most chapters in the book setup each project in a common fashion: explanation of the project, overview of the script library that will be used for the chapter, listing of the CSS styles used, followed by walking through the HTML markup and JavaScript code associated with the project.  Overall, the author conveyed the details of the project well, though not always covering contents in the order a reader may expect.  The author had a unique style to his writing, and each chapter in the book was easy to read.  The author is into pop culture and included statements and taglines from various pop culture sources, including reference markers explaining where the pop culture reference came from.

My favorite chapter was creating the AJAX mashups.  This was a topic that was somewhat foreign to me; I didn’t quite understand how they worked, and the book illuminated it magnificently.  The chapter used Yahoo Maps and Google Base to setup a zip code/hotel lookup.  I also enjoyed the drag and drop shopping cart using YUI, and how simple it is to provide the drag and drop ability for dragging items into the shopping cart.

One disappointment I had was that each chapter didn’t build upon itself to show you something new, with the exception of the JavaScript libraries.  Each chapter focused on what it needed to do to get the problem solved.  Furthermore, the books didn’t get into any complicated design patterns to solve any of the problems, which is a hot topic these days.  This would have been helpful to illustrate to the readers.  A lot of the same techniques are used throughout each project, which I would have like to seen him build upon the techniques used and have the book increase in complexity of application design have to offer.

Overall, the book is good, especially for those new to JavaScript.  The techniques learned you will be able to apply to your own projects.