Dynamic HTML The Definitive Reference (2nd edition)
What's in the book?
The book is not an introduction to DHTML but it does have an 183-page section on Applying DHTML that covers not only the current state of the art but also gives clear guidance in making use of all the features. The guidance is of a good enough standard that a firm's Quality program could simply cite this book as the basis for the web development standards that a team adopts. Goodman makes it very clear that he is not going to discuss the DHTML that Navigator 4 introduced, the <layer> tag and JavaScript style rules, but points out that they are covered in the first edition should you really need to know.
The layout of the book is the same as the first edition, with the reference sections divided into HTML, DOM (Document Object Model), CSS (Cascading Style Sheet) and JavaScript. A new section for Events also makes an appearance. The reference sections on HTML and DOM have sub-sections that precede them on the shared attributes of all elements. These are particularly useful and I think should be committed to memory.
There is also a very curious Cross Reference section that has an HTML/XHTML attribute index and a DOM property, method and event handler index. It takes each HTML/XHTML attribute and shows which elements support it and then each DOM scriptable object property, method and event and which objects support it. I'll confess I've never had any call to use this section but I can see how it could come in handy -- and it hardly takes up much dead tree.
The upper limit of standards coverage is HTML 4.01, XHTML 1.1, CSS Level 2, DOM Level 2, and JavaScript (or ECMAScript) 1.5. The browsers considered are IE6 (Windows), IE 5.1 (Mac), Netscape Navigator 6 and 7 and Mozilla 1.0. Opera is also mentioned in the section on Applying DHTML in that it mostly follows the IE DOM. The timeline for any element can go back as far as HTML 3.2, Navigator 2 or IE 3.
As you would expect, there are some useful appendices: Color Names and RGB Values, which I expect to be using more now as sites are required to meet Accessibility guidelines; HTML Character Entities, for when you don't have a copy of Macromedia Dreamweaver or when your favourite HTML editor doesn't have a complete list; Keyboard Event Character Values, for your scripts when you want to catch all those key presses; Internet Explorer Commands, which along with the MSHTML.dll can allow the creation of a very neat content editor quite quickly and easily; and finally, an HTML/XHTML DTD Support cross-reference that may help catch validation errors as you move from an HTML 4.01 Transitional DTD to a full-on XHTML 1.0 Strict DTD.
What makes it worth having?The quality of Danny Goodman's writing is both technically accurate and easy to read. The clarity and lack of fluff is good, but there is no skimping on detail where such is needed to illuminate a point. Let's face it: web development is not as complex as most software engineering or systems development tasks, but it is a discipline with quite a wide base, reflected in the 1400 pages of this tome. I wouldn't trim any of it, however, and I expect that after about a year of use I will have referred to a good proportion of the contents. Take, for instance, Goodman's estimate that there are more than 15,000 unique instances of properties, methods, and event handlers supported by numerous document objects and you get an good impression of the size of the documentation required.
The book could be regarded as two books in one: There is the Applying DHTML book and the Reference book. The best things about the reference sections are the excellent descriptions, the clear little examples, and especially the quick summary of where you can expect these things to be supported. Referring to this book is the simplest way to avoid going down the proprietary browser extension cul de sac.
The Applying DHTML section is worth reading all the way through. It is great for getting yourself into the various technologies and seeing how they are meant to work. There are interesting points made on how each of the technologies are evolving. There's material contrasting the various DOM implementations and there are chapters on style sheets, positioning in CSS, making the content dynamic (of course, this is what DHTML is all about, after all) and scripting events.
There is a very useful cross-platform API for DHTML (which can be downloaded as a zip file along with the other examples from the book on O'Reilly's web site). I've used the version from the first edition quite a lot, and I've used the new version in my most recent work. It doesn't rely on browser version sniffing, but rather on object detection, which is explained with some examples, and can be easily extended to handle any DOM call you may wish to make. The API is especially useful for any CSS positioning tasks you may have. Goodman also goes over other strategies you can adopt to make your sites cross-platform, such as page branching, designing for a common denominator, and some other, neater, solutions.
There isn't anything on Accessibility other than a single paragraph drawing your attention to the Web Accessibility Initiative (WAI). DHTML and Accessibility could be considered inimical but that isn't the case and I'd perhaps have liked to see this elaborated on with some suggestions on how to achieve an Accessible site while still using DHTML. In practice, however, I've found it easy to meet the Priority 1 checkpoints (or A rating) set by the WAI even with a complete DHTML site so perhaps this is not really an issue.
I find this book really useful. I can't imagine any web developer doing without this book and managing to produce a good cross-platform solution, and I also can't imagine that developer needing any other texts on any of the technologies covered here. I certainly don't have any others on my desk today.
The O'Reilly web site has a complete Table of Contents available. You can purchase Dynamic HTML The Definitive Reference from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
At subway, you get a sub prepared anyway you like, by the friendly, efficient staff. Choose from mouth-watering veggies, succulent meats and cheeses, and a variety of freshly-baked bread. Why not stop in today and pick up some subs for the whole family to enjoy. I suggest the Italian BMT, piled high with genoa salami, pepperoni, ham, and provolone cheese. Top it with lettuce, tomato, onion, and pickles, a few spritzes of italian dressing, and a dash of salt and you've got a meal fit for king. Subway: eat fresh!
g to the oatse
c to the izzex
fo shizzle my nizzle click here (note: the site is currently down. I expect it to come back online around Thanksgiving) to dispatch Jared and his formerly overweight goons to crack down on Subway if they don't honor the $3.49 Troll Tuesday deal. Make sure you provide the store number and address. Mine is store number 5839. Don't believe me about the concept of the jared dispatch? Yahoo has an article about it here, although it is pretty light on the details.
Note: I've gotten a few comments that the link to Jared Dispatch doesn't work. I think the site got taken down because of abuse of the service. Although the site got taken down, I still highly reccomend Subway and their high quality subs. To show my appreciation, here is a link to Free Subway Coupons. I had to redirect it through Yahoo's site redirector, because my of the filter at work. Anyways, here is the link!
Note 2: I've received word that those links to yahoo actually point to goatse.cx. I am truly sorry about that, and I found the cause. A couple weeks ago, a hacker broke into yahoo and set up some scripts that redirect the user to goatse.cx if a file is in a certain directory. I accidentally tried to access a file in one of those haunted directories. I fixed the links (I have a cousin who works at yahoo), so they should bring you to the actual sites now, not goatse.cx. Update 10/28: The hacker, or should I say hax0r, actually has posted a page on yahoo on how he did it and how the goatse redirector works. It's a very good read. I suggest reading it soon before yahoo finds out about it and takes it down. Check it out ASAP!
Note 3: I am working on locating the articles using google's cache. It is taking some time because I don't remember the exact titles. However, I hope to have the links fixed and working very soon. Keep eating at Subway in the meantime, and request that they bring back the jalepeno cheese roll. It is a fanscrumptiously brilliant roll.
Note 4: To all those who think that sub is an incorrect term, I live in upstate NY, and we call it a sub here. There are no hoagies, grinders, po'boys, or any other made up names. It's not hoagieway, its Subway.
All the stuff the version 4 browsers promised is finally becoming reality I can more than experiment with. Also your assertion that developers should spend more time making sites accessible is true. It is still possible to have DHTML and still be accessible, it all depends on the developer and how educated they are in their field. I agree that in most cases the use of DHTML/JavaScript is insane concerning advertising crap. Your belief that DHTML's only application is advertising on the web is crap. There are at least of few of us using it to enrich the user experience. For example forms are probably benefit the most from DHTML and JavaScript. You can have a dynamic changing form that can do a lot of first level data validation without having to submit the form over and over.