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.
Used copies of first edition are pretty darned cheap.
Easy guys, I put my pants on one leg at a time. The difference is after I put on my pants I make gold records!
This book, as he says, "is not an introduction to DHTML". If you are looking for a book to get started with DHTML, I highly reccomend Essential CSS and DHTML for Web Professionals (2nd Edition), by Dan Livingston. I learned most of my DHTML fundementals from the first edition, and recently purchased the second edition as well. This is a very short book, an unlike many of its kind, can be read almost in "novel" form to get a basic overview without getting bored. You can then go back and try the examples, and actually implement some DHTML. Without a doubt one of the best web development books I have gotten.
-Pete
Soccer Goal Plans
As I just stated, the first edition was a great book and it has never left my desk since the day I bought it. If your a serious web developer or just a part time page monkey, this book (the first or I guess now the second edition) is for you. Hard to go wrong buying an O'Reilly book.
An optimist believes we live in the best world possible; a pessimist fears this is true.
... no matter how good the book is (and it probably is, I'm not meaning to say it isn't), doing good html is really hard / complicated. A good book isn't going to automatically mean you master it - you need to practice like mad, read the source code for websites, create websites, have common sense, a decent understanding of the human-usability thing (not easy), and be prepared to do the tedious work that is typing out html once you've mastered the skill in the first place.
Nice review. I was Googling the web yesterday trying to figure out if any DHTML techniques have become standards. Can anyone point me to a site or two that answers this question? I have my heart set on not writing another line of code that won't work in one browser or another. Within reason.
I don't have the new edition (mine is the first edition, publiched July 1998), but I couldn't imagine being a developer of web-facing applications without this book. The JavaScript reference and the DOM references are great, and the CSS reference is really useful as well. I don't care much for the layer aspects of DHTML (behavior is inconsistent), but this book is still a great addition to any developer's library.
- Vincit qui patitur.
Though The browser war is over ...
To borrow a quote from my friend, "John 'Bluto' Blutarski" who spent most of his college career on double secret probation.
Was it over when the Nazi's bombed Pearl Harbor?
Well it ain't over now!!!!!!
The browser wars won't be over until Mozilla stomps IE.
Other than that, the book sounds excellent!
figure out if any DHTML techniques have become standards.
DHTML means manipulation of the HTML DOM through ECMAScript. The HTML DOM is a W3C Recommendation, and ECMAScript is a European international standard.
Will I retire or break 10K?
Oh, that's right, you only have to design for IE now. Silly me, I forgot that all the other browsers are dead. That, or maybe, they all render DHTML exactly the same now? (HAHAHA)
(Well, maybe Lynx is dead, it's web page seems to be down...)
And the point is, this book doesn't have much market because for the tasks 99.99% of web developers would have use for, they could just study the source code of other web sites. The only people who should read an advanced book like this would be people trying to develop more-complex DHTML floating ads. And that is why there is going to be little market for this book.
Cover your eyes and click this link!
Although I consider the parent thread flamebait, I will respond anyway. The book is not just about DHTML, it is in fact a very good reference for HTML, CSS, and Javascript which are used every day by most web developers. The book outlines which tags are supported by what browsers and thus allows you to create a site that is accessable by all. The book is good for anyone who does or doesnt use DHTML just due to the fact that is is a general reference book.
An optimist believes we live in the best world possible; a pessimist fears this is true.
From where I look at this, the market is actually quite different.
I would say the vast majority of sites I have personally ever worked on have been internal projects. Using web standards to create a front end for an application is a very appealing idea. After all, if one decides to turn the application into a distributed app, there is a lot less work.
This is where I see the advanced topics of DHTML and JavaScript being used, not in the latest homepage of some stranger. Probably not even in the latest shopping site, which was probably designed years ago for ultimate compatibility.
As an aside, with Mozilla (the engine) gaining in popularity as an application framework, I can only see these topics gaining even more relevance.
I liked the 1st edition too, so I'm not suprised that the 2nd got such a rave rating, but 10? I would have liked to see more information on why it's better than the first edition. Not mentioning much in the way of accessibility is a big minus for me working on corporate sites since Section 508 compliance required.
Amazon has it cheaper ($41.97) then B&N by the way.
The same thing can be said about any book covering just about any language.
This book covers a huge amount of material. After all, DHTML is just a name used for the interaction of a bunch of different things, and this book seems to try to cover all of them. I wonder whether Goodman is really an expert on all of it (or whether anyone can be). I'd be a lot more comfortable trusting a book like this if it were written by a group of authors with different areas of expertise.
Looking at what I can find about the book's coverage of CSS (which I know a lot about), I'm not optimistic. He seems to make up his own terminology, which can cause significant confusion in any public discussions. He uses the word "attributes" instead of "properties" (e.g., the CSS 'position' property) in the sample chapter available at O'Reilly. This is a mistake that's become very common these days, perhaps due to earlier editions of this book, and causes lots of confusion when people really need to discuss attributes (in HTML). The table of contents also shows sections titled by terms that he seems to have made up: "Common Subgroup Selectors" and "Advanced Subgroup Selectors".
It could be that he's decided he doesn't like the terminology used by the CSS specification so he's making new terminology. Such a decision has significant costs for communication between and among web developers and standards organizations. However, I fear it may not even be a conscious decision, but rather than he just doesn't know enough about CSS to know the correct terminology. (Not that I would expect any one person to be able to learn enough about all the topics covered in this book to be an authority on all of them.)
(If you want a good book on CSS, look for Eric Meyer's books on CSS, one of which is also published by O'Reilly.)
Other authors may do more for back end programming in your specific back end platforms and tools of choice, but you won't do much better than these two for front end browser programming.
...Open Source isn't the only answer -- but it's almost always a better value than the alternatives...
Cheers,
Ian
First off, the article misleads you into believing that there are only four or five web browsers. The truth is, there is only one--Internet Explorer.
Really? Let's find out. Everyone out there who is not using Internet Explorer, raise your mouse hand.
[Earth's orbit changes infinitesimally]
Thank you
"Where's my other sock?" - A. Einstein
I'm not a web developer, but I've heard that DHTML support in Mozilla is pretty bad. There are a few sites which either don't work at all in Mozilla, or have "static" versions with DHTML removed*. Some of the web developers around my office have complained about this, and cite IE's DHTML support as the best.
Is this an issue of actual support, or just "IE standards" where people don't want to use real standards, just whatever "standard" Microsoft supports?
* The site I'm thinking of is Citibank's credit card management section. here. Of course, if you don't have a card with them, you can't log in to check it out.
Chapter 1
Don't use DHTML. It's pain in the ass. If you want "cool" stuff that makes Web sites non-accessable, use Flash. You only have to write one set of code then.
Department of Homeland Security: Removing the rights real patriots fought and died for since 2001
Looks like /. junked my link on Section 508 in the previous post.
"Let's face it: web development is not as complex as most software engineering or systems development tasks"
You obviously never had to cope with developing a complex web application. When done right, it's a task far more complex than "conventional" software engineering.
Rich client-side interface doesn't mean a mouse-cursor tracker or validating your form on the client-side. It means letting the client side do ALL your application logic and interface, seperately. And let the server do the dumb job of validating, saving and returning raw data that can be handled by client-side custom components or logic-flow.
Not as complex? No, even more complex, if you're doing anything worthy.
Anyone who develops sites for corporates is going to be using DHTML to make it appealing and easy to use. I develop internet apps for a living, and I use DHTML all over the place in my development. You can make some VERY effective user interfaces with DHTML... I've used it in my sites to create extremely flexible/dynamic forms that pass sophisticated information in a single form that would require 5-6 round trips to the server without it. You quite obviously have no idea what you're talking about. Perhaps you should stop spewing crap and learn a little about the subject before you mouth off.
-1 Uncomfortable Truth
I'm not trying to troll here, this is an actual question because I don't know.
Is DHTML still as relevant as it used to be? Aren't people using server side scripting (perl, php, asp, etc) for truly interactive sites and things like DHTML are little more than nice HTML enhancements for doing the odd neat thing?
I just wondered what the perception was? I'm not anti-DHTML by any means, I'm just interested in where the general trend of web development is going.
Are people *still* pushing DHTML? Any standard that incorporates client-side JavaScript sounds like a bad idea to me. Client-side JavaScript is a pain to implement and has high maintenance costs.
You get plenty of bang for your buck with HTML or XHTML with CSS. If you need business rules, stick 'em on the server.
And don't waste time learning JavaScript! Your time is better spent learning PHP, Java, Python, you name it. You can't use JavaScript anywhere else.
-Ed
I use IE6 to cruise the web. Given the all the security holes and patches, I'll be damned if I say yes to "Scripts are usually hamless. Ok to run?"
Even a site like the NYtimes runs under lockdown on my machine. Though I trust the web designers at the Times not to be malicious, I don't think they can secure their site against an attack that sneaks a malicious script onto their site. Same thing is true of internal web pages.
You obvisouly don't know what you are talking about.
Well-used Javascript and DHTML is harder to recognize than the obvious stuff you come across as popups and various ad-schemes. Apparently, you pull stats ("99.9999%") out of your ass and try to pass your opinions as facts. Are you in the industry, or is your main experience that as a surfer ?
There is tremendous power to DHTML and Javascript, and it is widely used in commercial sites. It allows the user to interact with the otherwise dead html in ways that help the user and the site.
For a great example, look at International Herald Tribune. You can select articles from the frontpage and put them in a "clippings" folder - no you don't have to login - and then you can read them all later on. No more "open in a new window". For individual articles you can select how it will presented; font size, colums per page etc. This is an example of a site that is usable and intuitive thanks to Javascript, in this case.
So, get a clue to what you are talking about.
Oh, I can't help quoting you because everything that you said rings true
Anything you can do, I can do meta.
First of all, what is DHTML? Why not just call it "Scripting CSS and DOM with ECMAScript"? Calling it DHTML is confusing, because it makes it sound like a seperate version of HTML.
Honest question: there seems to be a lot of overlap between this book and other O'Reilly titles. Can anyone tell me why I would want this one rather than "HTML/XHTML, The Definitive Reference" and/or "Javascript, the Definitve Reference"?
--
CPAN rules. - Guido van Rossum
This is the sound of someone sorting a list of items without client-side javascript...
click (wait)... click (wait)... click(wait)...
One example of thousands of times where client-side scripting is useful. Is server-side scripting more useful? Certainly. Should server-side scripting be learned first? Probably. But any web developer that isn't familiar with client-side scripting is a mediocre web developer.
Then the first one wasn't THAT definitive!!
Articulos para gente geek: Poleras, linux, libros y mas
Don't click on the above Amazon link either. Amazon is well known for their abusive business practices, and the link is for the poster's affiliate program. Instead, use Bookpool - $36.50 there.
The best thing about a boolean is even if you are wrong, you are only off by a bit.
Yes, half the slashdot population could indeed be using a browser that is not IE. However, 99% are not, so making DHTML compatible for other browsers should be the least of a web developer's concerns. Content and navigation should come first.
:)
I agree. I guess DHTML and JavaScript have excellent tools for intranets, for instance for services like accessing Novell GropWise through the web browser. I think you're right, that there are good uses for DHTML.
I don't mind useful applications, but it seems that the internet is more annoying now it was in 1996 and DHTML is one of the reasons no doubt. It does have good purposes, but no thank you 99% of the time, when I'm accessing the internet and not intranets.
Thank you to people who enlightened us all about intranet usefulness. I posted my opinion, it went to 4, Interesting, and generated a few explanations of how DHTML is useful. Now that my perspective had a counterpoint, my moderation quickly went down to zero. I ask, are we not all enlightened from the discussion that took place? How can something that entices useful information be devalued once moderators judge that a 'better' opinion appears, all stemming from this? And flamebait, of all things...
Cover your eyes and click this link!
I'm not so up to date what's the current state of the art, but some years ago, when I was applying DHTML, I always found Dan Steinman's Tutorial Dynamic Duo very helpful (thanks Dan!).
It has been continued as DynAPI
Sometimes an even better approach would be to study the code existing out there first, such as the excellent code offered up by exitfuel. One of the most important pieces of code is the window.open function, and onload and onleave of the body element. Once you have them mastered, along with the Document Model of Objects, you have a good grounding for some serious Flash programming. There are some pretty intense workarounds necessary for some of the mechanisms that people have in place nowadays, but it's definitely doable! Good luck!
tag- Why don't most girls like programming?
I am looking to accumulate friends. Please click on the circle and add me as a friend. Thanks!
If you want eye candy, use Flash, which does a much better job of it.
Anyone own both? How do they compare to one another?
Unable to read configuration file '/bigassraid/htdig//conf/14229.conf'
Geocrawler error message.
TROLL?
Funny, sure, Informative, really... why muck around with the various browser compatability issues when even Netscape 4 supports the same Flash plugin that Opera/IE/Mozilla/You Name It supports??
Maybe Danny himself modded me down to boost sales =)
Department of Homeland Security: Removing the rights real patriots fought and died for since 2001
...buy the book here, and support stores that protect their customers' privacy.
So how would clicking that link benefit Amazon ? If we don't like them, isn't it good we use their bandwidth and servers ?
Oh, I can't help quoting you because everything that you said rings true
I got this book the day it came out. I've been waiting a few years for it, and I haven't been disappointed.
The reason I like the book so much is because it's not soley limited to DHTML. The first couple hundred pages talk about DHTML and it's uses in browsers, etc. All very great writing, but stuff I already know.
The great part about the book is the other 1000+ pages of syntax references for everything, HTML, JS, CSS, DOM, everything. Basically it's a book that tells you everything you can possibly do in a browser, not just DHTML.
I've used it for looking up CSS properties, or HTML attributes, or Javascript functions. I don't know how many times I've thought of and idea of something to do in a browser, looked in the book, and found some method to do it. Sure beats trying to find info on the W3C site.
Best book I've ever owned, bar none.
The quote was from the movie Animal House. You might want to rent it. If you can leave your mother's basement long enough.
Some of what I say is fact, some is conjecture, the rest I'm just blowing out my ass...you guess.
I realize you're mainly being facetious, but my knee is jerking...
Although it's "tuned for" server-side web applications, PHP has quite a lot of useful capabilities built into it. Think of it as "PERL lite", with an easier-to-follow syntax.
I find myself using the command-line version of the interpreter frequently. It doesn't have nearly as "broad" of a range of capabilities as, say, PERL does, but it's hard to beat for the sorts of things that it's tuned for - internet communications, text-handling, simple on-the-fly graphics, and talking to database servers, for example, whether you use it within a web page or at the command line as a cron job...
Ah, there, got my knee to stop...
At any rate, I agree completely with the point of your post - just because some people abuse javascript for fluff and nonsense doesn't discount the real usefulness it has. As an earlier poster pointed out, a combination of client-side javascript and server-side PHP can generate some really kick-butt web-based applications...
Hacker Public Radio is our Friend
I don't care if JavaScript can only be used client side for web sites. There are a whole lot of websites, and a whole lot of clients. Besides, the more processing I can keep off of my server the better.
You couldn't be more wrong. I'm a consultant, and when I need to write a server-side ASP script, I do it in JavaScript. IIS supports server-side JavaScript* out of the box.
* Note: for purposes of the above message, JavaScript = JScript = ECMAScript
bp
CSS was designed to be simple and easy for a human to read and write.
The entire point of CSS was to remove presentational attributed from HTML; moving them to somewhere else in it would be counter-productive. The HTML specification would be bloated significantly, not to mention how messy it would almost certainly be.
CSS is also designed to style arbitary XML documents, not just HTML, so it would have to be generalised; so HTML becomes XML, and before you know it, you've got XSL:FO.
They did:Not much better than <font>, though.
Without a doubt, the first edition of this book is the best web book I've owned. I use it regularly to check myself on unmemorized topics, and lend it out to friends that find themselves in the same boat.
It's a great combination of HTML/Javascript/DHTML/CSS etc.
Well worth the money.
I don't recall any such claims. It's certainly not true for markup-heavy tasks such as the specification of a stylesheet, as XSL plainly shows.
Well, if you want an analogy to help you understand, it's like saying "Instead of making our range of cars, trucks, busses, lorries, tanks and bikes amphibious in whatever way we can hack into them, let's just build a boat they will all fit into, along with anything else we or others might make in future along the same lines".
If you think it's syntax is what makes CSS "complex", you can't have used it much
<model>
<instance>
<login>
<username/>
<password/>
</login>
</instance>
<bind nodeset="username" required="true()"/>
<bind nodeset="password" require="true()"/>
</model>
<input ref="username">
<label>Username</label>
</input >
<secret ref="password">
<label>Password</label>
</secret>
See http://www.w3.org/MarkUp/forms -- and there's already an IE plugin that does it.
HTML is one example of an SGML (and now XML) document type which you might want to style. A stylesheet language must be generalised, ergo you can *not* just base it on HTML and let all the other document types do their own thing. Better to make one centralised standard which encompasses them all.
The fact that XML didn't exist when CSS level 1 was recommended kinda made it unsuitable, yes
HTML is not a standalone language; HTML is an SGML doctype. The only sane way to do what you suggest at the time would be therefore to make a new SGML doctype for CSS.
I imagine this was concidered, but given how complex SGML is and how simple CSS is, it's quite easy to see why it wasn't actually done, especially concidering the quality of the browsers at the time. I'll bet the thought of retargeting speghettified tag-soup parsers to a stylesheet language which really didn't need anything close to a DOM wasn't terribly attractive.
Anyway, it was a good decision, XML or no, XML rapidly turns into a mess of tags which would make the
Javascript is a language, and there is even a stand-alone implimentation. Javascript is embedded in other programs, it's just not popular for other uses.
I think it is/was also used for server-side stuff in netscape's webserver
Apocalypse Cancelled, Sorry, No Ticket Refunds