I really appreciate the way that (throughout the book), John will show you how to do something, but then a library which does the same thing (but without the bugs you will inevitably introduce). It’s the best of both worlds: giving you the understanding of what’s going on, but also the ability to use that knowledge quickly.
Further on in part 3, the DOM is described in exacting detail. Yet it’s still succint. Walking through the usual suspect (
document.getElementsByTagName()), he also goes on to talk about using CSS Selectors and XPath (using external libraries). This is a good example of taking you a step further than most of the other documentation I’ve seen.
Whilst all this is going on, a small library of utillity functions is building up from the examples. Many of these functions are used in later examples. This is something to be aware of if you open the book at random. But, the routines are very likely something you will want to reuse in your own work, so I don’t begrudge this at all.
Further chapters go on to discuss CSS integration, enhancing forms, and Ajax. There are also practical chapters where you build an image gallery (similiar to lightbox), enhance a blog, build an autocomplete for a text field. These culminate in an Ajax wiki. I have to admit, I haven’t tried the code for that yet. But the design decisions seem clearly explained. I’m not 100% sure on the Ruby code I saw, but that’s a minor matter, as it’s not the books primary focus.
Personally, the chapter on enhancing forms was of the most practical value to the work I do. It was neat, self-contained and immediately usable.
There are three useful appendices: A DOM reference, an events reference and a brief browser overview. I can easily see myself going back to the first two a great deal.
What negative points are there? Not many. The index seemed a little sparse. In particular, the functions that are developed along the way aren’t in there.
I have no complaints at all about the quality of the writing. It’s all clear and eminently readable. Unsurprisingly, this applies to the code as well as the prose.
Overall, this books gets a big thumbs up from me. I’ll be coming back to it regularly. And I will be nudging work to get a copy as well.
@Dominic: I’m glad you enjoyed the book – and thanks for the thorough review, I really appreciate it.
Whooops 😦 Apparently the form doesn’t give a response when submitting, I had no idea what was happening. Feel free to nuke all the comments and this one – sorry!
Sorry about that, John. The comments do appear, but further up the screen. It’s a bit weird, I shall have to pay it some attention…