Title: DHTML Utopia
Subtitle: Modern Web Design
Using JavaScript and DOM
Author: Stuart Langridge
Publisher: SitePoint
Edition: June 2005
ISBN: 0-9579218-9-6
Pages: 400
Price: $39.95 US, $57.95 CA
Smiley Rating: Excellent. :) :) :) :) :) of 5
Have you already been building websites with HTML and CSS? Do you have a bit of programming experience? Do you wish to learn to make your pages more dynamic while maintaining a maximum separation between HTML and CSS? If your answer is yes to all these questions, then I strongly recommend this book.
Understanding the Document Object Model (DOM) is critical to effective use of DHTML and this book explains it really well including giving really superb examples.
The book covers such things as using DOM scripting for
If you want a bit more detail, you could take a look at my somewhat longer review. Or you could just download and dive into the 4 sample chapters offered on the SitePoint page for this book.
George Woolley of Camelot.pm and Oakland.pm
When I looked 2006-02-10, this book was not available on Safari Tech Books Online. I did see a few SitePoint books there, though.
Checkout the SitePoint page for this book; Sitepoint offers sample chapters there as a PDF. I did the download and it included the first 4 chapters of this book.
I noticed the following HTML tags in HTML examples in the book:
Not surprisingly, I didn't see
I noticed the following CSS properties in the style sheet examples in the book:
Here are some of the methods I noticed in the JavaScript examples in the book:
"values of β will give rise to dom."
In this section I'll take a look at the meaning of the title and subtitle of the book.
I'll assume you are familiar with HTML and CSS. If you are not, this book is almost certainly not for you.
DHTML is short for Dynamic HTML. It includes
Later in this section, I'll say a little more about "semantic", "presentation", "JavaScript" and "DOM".
DHTML is an artificial construct; there is no W3C spec for DHTML. DHTML pages are pages that use HTML, CSS and JavaScript for DOM scripting. DHTML is often used to make pages more interactive. Want more points of view on DHTML? Try googling define:DHTML
By utopia I typically understand "an imaginary state of perfection". In this context though, I understand something like "DHTML as it should be".
One could certainly argue about what "Modern Web Design" means. For one thing, the word "modern" is ambiguous in the extreme.
Part of what I understand by "Modern Web Design" here is "up to date web design". And part of what I understand by up to date web design is web design that uses semantic HTML and uses CSS to control presentation.
Semantic HTML is HTML which focuses on making clear what is a heading, paragraph, list, etc. It is HTML which does not try to specify how things will appear; more specifically, it does not try to indicate color, font, alignment, etc. So you won't see font, center, b and i tags in semantic HTML.
CSS can then be used to specify how the document actually appears including color, fonts, borders, etc.
JavaScript is a dynamic programming language; client-side JavaScript can be used to change the appearance of a web page. For example, it can be used to make possible dragging an image across the page.
One of JavaScript's strengths is that it can manipulate the DOM for an HTML page. (I know, I know, I still haven't said more about DOM. That's next, OK?)
DOM is short for Document Object Model. It's a hierarchical view of an HTML page that can be searched and manipulated. Manipulating the DOM typically changes the appearance of the page.
Mostly, I'd say a strong yes. The book supplies lots of reasonably up to date info on DHTML for a web developer who wants to use DHTML in his web pages. And the use of JavaScript and DOM in this context is certainly addressed.
I'm not sure how well the word "utopia" fits though. Having to deal with sniffing out what features the browser supports does not seem ideal or even as it should be. For older browsers, one could argue this is inevitable, however this is necessary for current browsers too.
In this section, I've included some information about myself that I thought might help you to make better use of this review.
I'm an amateur web developer. I've built a number of websites using HTML and CSS.
I'd read and reviewed 6 books on HTML & CSS before diving into this book.
I don't need to work these days, however when I worked, I worked as a software developer. I've made significant use of more than 20 computer languages.
I've made some use of JavaScript but my style is archaic. I've made some use of PHP which is relevant because PHP code appears in some examples in the second half of the book.
Most of my web related programming experience is on the server side using Perl or PHP.
Earlier, I read and reviewed "HTML Utopia: Designing Without Tables Using CSS". I thought it was rather good.
I have a small amount of experience as a teacher.
I have several years experience developing self-teach computer manuals.
I'm not ready to deal with DOM alternatives just now. I read the Chapter on DOM Alternatives, but I didn't try anything out.
The book includes an introduction, 10 chapters and an index. The 10 chapters take up 304 pages.
The Introduction and the first chapter present introductory material. The Introduction is an introduction to the book; the first chapter is an introduction to DHTML.
There are two chapters on DOM (chapters 2 & 3). One chapter explains the Document Object Model; the other chapter tells how to handle DOM events.
There is one chapter (chapter 4) that shows how to determine if a browser supports a particular DOM feature.
There are 3 chapters (chapters 5-7) that each focuses on a particular dynamic capability.
These chapters focus on animation, forms & validation and menus.
There are two chapters (chapters 8 & 9) on interacting with the server.
One chapter focuses on retrieving dynamic content from the server; the other chapter deals with communication both directions.
There's a single chapter (chapter 10) that explores alternatives to DOM.
The presentation of DOM is unusually clear, which is nice since it's the key to understanding DHTML.
Chapter 1 "DHTML Technologies" barely mentions DOM but nevertheless lays the groundwork for what follows. Chapter 2 "The Document Object Model" says what DOM is and gives the basics of how you can manipulate the DOM of a web page. Chapter 3 "Handling DOM Events" goes into more detail on how you can control what happens when various events occur such as:
Chapter 4 "Detecting Browser Features" tells what features of DOM are supported by the the particular browser that is accessing the page.
Later chapters (5-10) take advantage of the groundwork laid by these earlier chapters.
I thought both the explanations of DOM and the examples were super clear. I found it easy to move from them to doing what I wanted to do.
The selection of material is excellent.
The basics of DOM are nailed down up front, then the author addresses such things as using DHTML for:
All of this is of interest to me and, I would think, to most people interested in creating websites. The material is not too difficult either.
The first section in the Introduction is entitled "Who Should Read This Book". I really appreciate that the book explicity says who it's intended for.
On the page for this book on the SitePoint site, I discovered I could download the first 4 chapters of the book as a sample.
The book says JavaScript is a simple language. I don't think JavaScript is an especially easy language to learn or to develop with.
As best I understand, the book is aimed at people who have experience building websites with HTML & CSS who may or may not have any programming experience. However, in my opinion, it would be difficult to follow this book without some experience with programming.
The book would be ideal for someone who
The book would be just plain annoying for someone who
The book makes it clear that it aims at people who have experience building websites with HTML & CSS
You don't have to have anywhere near total mastery of HTML, though if not you probably should have access to a good HTML reference and feel comfortable using it. There's a list of HTML tags used in the left column to give you an idea of what HTML tags the author uses in markup examples. You certainly don't need to know all of them.
You also don't have to have anywhere near total mastery of CSS, though if not you probably should have access to a good CSS reference and feel comfortable using it. There's a list of CSS properties used in the left column to give you an idea of what properties the author uses in style sheet examples. You certainly don't need to know all of them. Nor do you need to know every last selector, etc.
The book does not discourage people without programming experience from using it.
My opinion is that programming experience is a prerequisite. I also think it would be highly desirable to have been exposed to object oriented concepts. Also, I found it quite useful to have a good JavaScript reference available.
I think this would likely be an excellent book for you if you:
draft on Web: 2006-02-12b
removed draft status: 2006-02-20b