- It should be designed for programmers who know the target language (but perhaps only at a basic level of fluency).
- It should provide solid and clear recipes for commonly encountered problems.
- It should provide solid and clear recipes for hard problems, in a way that makes good programmers better.
- Ideally, it should provoke audible gasps of "Cool!"
The more advanced material ranges from the interesting to the decidedly odd. An example of the latter is Goodman's attempt to build a cross-browser floating DIV-based modal popup window emulating the look and feel of the underlying OS (including titlebar and command buttons). There may be much to mine from an example like this, but the attempt is so basically misguided (making the browser mimic the OS rather than create interactions more natural to the web) that no one would or should reuse the recipe blindly. I can't say that I learned much from this book, nor did gasp "cool!" much. (I did, however, learn indirectly why getting dynamic references to element positions was breaking under Safari.)
A drawback this book shares with Goodman's other DHTML guide is its insistence and focus on compatibility with older generation browsers. To be fair, this book was written at a time when the trends towards DOM compliant (or mostly compliant) browsers were less clear. These days, only a masochist would use Netscape 4.x or IE4 browsers, and much of the traditional emphasis on supporting older browsers is pointless. Clearly, one must (unfortunately) still support IE's proprietary event model, and a small amount of feature and platform testing is important to support the minor variances between the other browsers, but most of what is covered is fortunately useless.