Client Side Technologies: DHTML

Mosh Teitelbaum evoch, LLC

© 2005 evoch, LLC

• DHTML = Dynamic HTML
It allows you to build rich client interfaces and to modify them dynamically

• There is no DHTML standard
It is not a W3C, IEEE, ISO or anything else standard

• DHTML is a collection of several standards
DHTML consists of HTML/XHTML, CSS, DOM and JavaScript (or ECMAScript)

© 2005 evoch, LLC

DHTML In A Nutshell
• DHTML is too rich to cover in an hour
The technologies are way to rich to fully cover in this presentation. This presentation will: 1) Briefly introduce each technology with a quick example 2) Give a high-level overview of how to use each technology 3) Show some more advanced uses for the various technologies and review how each one works 4) Provide resources for further exploration of each technology
© 2005 evoch, LLC

01 • Contents. Current version is XHTML 1. LLC .HTML / XHTML • HTML = HyperText Markup Language Allows you to define and structure the contents of your document. not design HTML/XHTML was never intended to convey design © 2005 evoch. • XHTML = XML HyperText Markup Language XML-Compliant definition of HTML. Latest (last?) version is 4.01.1 which added no new HTML tags to HTML 4.

HTML / XHTML Example <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML"> <HTML> <HEAD> <TITLE>Sample</TITLE> </HEAD> <BODY> <P>This is a sample paragraph</P> </BODY> </HTML> © 2005 evoch.01 Transitional//EN" "http://www. LLC .

1. • Design. LLC . Latest version is 2. not content CSS is intended to separate design from content • Very powerful CSS is much more powerful than HTML design tags © 2005 evoch.CSS • CSS = Cascading Style Sheets Allows you to define the styles to apply to your document.

CSS Example <STYLE TYPE="text/css"> BODY { background-color: #CCCCCC. } P{ border: 1px solid black. LLC . margin-bottom: 1em. } </STYLE> © 2005 evoch. background-color: #FFFFFF.

comment node. attribute node. LLC .DOM • DOM = Document Object Model Defines a hierarchical model of the document structure through which all document elements may be accessed • Nodes The W3C DOM defines element of a document is a node of a particular type • Node Types Common types are: document node. element node. document-type node © 2005 evoch. text node.

" © 2005 evoch..DOM Example document node Document_type node <!DOCTYPE> element node <HTML> element node <HEAD> element node <TITLE> text node "Sample" element node <BODY> element node <P> text node "This is a. LLC ..

. LLC .. conditional logic. fully objectoriented. more © 2005 evoch. client-side logic and behavior to your document • JavaScript != JAVA Even though they have similar names.JavaScript • JavaScript Allows you to add conditional. DOM interaction. they are very different • Very powerful Current versions are incredibly powerful.

JavaScript Example <SCRIPT TYPE="text/javascript"> <!-function pushButton() { if ( confirm("Push a button") ) { alert("You pushed \"OK\""). } } // --> </SCRIPT> © 2005 evoch. LLC . } else { alert("You pushed \"Cancel\"").

LLC . (a = document. changing the design on the fly.getAttribute("title") == title) a.Shows ability of CSS to affect design w/o changing HTML function setActiveStyleSheet(title) { var i.disabled = true. } } } © 2005 evoch.getAttribute("title")) { a. main. this example dynamically "applies" the selected CSS style sheet. for(i=0.indexOf("style") != -1 && a. . if(a.JavaScript interacts with DOM and cookies . a.getAttribute("rel").disabled = false.getElementsByTagName("link")[i]). i++) { if(a.DHTML Example • Style Switcher Using JavaScript.

© 2005 evoch.Differences Between HTML and XHTML • HTML tags and attributes must be lowercase • All attribute values must be quoted • All elements that can contain others require end tags • Empty elements must either have an end tag or self-close • All attributes must be name/value pairs • The name attribute is deprecated. Use id instead. LLC .. • Some others..

Otherwise. it's Quirks Mode.w3. <!DOCTYPE OutermostTag RespOrg PublicIdentifier SystemIdentifier> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4. Quirk Mode • 2 Modes of Operation All modern browsers support 2 modes: Standards Mode for standard-compliant code and "Quirks" Mode for older or non-compliant code • !DOCTYPE Specifies the Mode A properly formatted DOCTYPE declaration puts the browser in Standards"> © 2005 evoch.Standards vs. LLC .01 Transitional//EN" "http://www.

LLC ."> some text </P> © 2005 evoch.HTML and CSS • <STYLE> tag Delineates inline styles <STYLE TYPE="text/css"> /* Styles go here. */ </STYLE> • <LINK> tag References external style sheets. <LINK REL="stylesheet" HREF="default.css" TYPE="text/css"> • STYLE attribute Defines inline styles for a specific block of HTML code <P STYLE="color: #FF0000... font-weight: bold. Allows for alternates.

• Rules Defines which styles to apply to which elements • Selectors Specifies the element or type of element that style affects • Declarations Specifies CSS properties and values © 2005 evoch. Not supported in some older browsers. LLC .CSS: Syntax • @import Directive Loads an external style sheet. Does not allow alternates.

LLC .CSS: Rule Structure P { color: #000000. Value Property } Selector Rule © 2005 evoch. Declaration Declaration Block font: arial.

} *[title]. } P. H2 { color: black. A[href][title] { color: black. } A:hover { color: black. H1. } /* Element Selector */ /* Grouping Selector */ /* Universal Selector */ /* Class Selector */ /* ID Selector */ /* Attribute Selector */ /* Exact Attribute Selector */ /* Partial Attribute Selector */ /* Particular Attribute Selector */ /* Descendant Selector */ /* Child Selector */ /* Adjacent Sibling Selector */ /* Pseudo-Class Selector */ /* Pseudo-Element Selector */ © 2005 evoch.urgent. } P > STRONG { color: black. } #Menu { color: black. } *[lang|="en"] { color: black.CSS: Selector Types P { color: black. . } A[title~="foo"] { color: black. } A[title="home page"] { color: black. } * { color: black. } P. } UL LI UL { color: black. } H1 + P { color: black. } P:first-letter { font-size: 200%. LLC .Error { color: black.

LLC .CSS: Common Declaration Properties background background-repeat color float font-size height line-height list-style-type padding text-align text-transform visibility word-spacing background-attachment border cursor font font-style left list-style-image margin position text-decoration top white-space word-wrap background-color bottom display font-family font-weight letter-spacing list-style-position overflow right text-indent vertical-align width z-index © 2005 evoch.

LLC .CSS: Box Model element Padding Border Margin © 2005 evoch.

js"></SCRIPT> • Event Attributes Defines event handlers for events of specific elements <INPUT TYPE="Button" onClick="alert('Hi there!').HTML and JavaScript • <SCRIPT> tag Delineates inline code or references external code files <SCRIPT TYPE="text/javascript"> // Code goes here.gif" onMouseOver="this." onMouseOut="this." > © 2005 evoch. </SCRIPT> <SCRIPT TYPE="text/javascript" SRC="code.gif'. LLC .src='red.." VALUE="Hi"> <IMG SRC="blue.gif'..src='blue.

JavaScript • Full. Current version is not. functions. try/catch/throw. "objects" • Very powerful Earlier versions were limited. feature-rich language Supports all standard control mechanisms: conditionals. etc. LLC . • Syntactically similar to CFScript CFScript syntax was based on JavaScript • Access to most browser features/properties Cannot normally access local file system. loops. © 2005 evoch. variables.

Advanced DHTML Example 1 • Bouncing Balls Using a combination of all DHTML technologies. this example dynamically creates and tracks the movements of an unlimited number of bouncing balls. . LLC .Creates new content dynamically .DOM manipulation to render animation and live data © 2005 evoch.

Advanced DHTML Example 2 • Zip Code Lookup Uses XMLHttpRequest object to retrieve XML-formatted data without requiring a screen refresh. LLC . . Data is retrieved from the server in the background.DOM manipulation to parse XML document © 2005 evoch.Retrieves data from server in the background .

including URL. "value") Sets a header to be sent with the request © 2005 evoch.asyncFlag[. Sets various request properties of the request "URL"[."username"[. LLC .XMLHttpRequest Object Methods Method abort() getResponseHeaders() getResponseHeader("label") Description Aborts the current request Returns all sets of response headers as a string Returns the value of the specified response header as a string open("method". send(content) Sends the request along with optional POST content setRequestHeader("label". and "password"]]]) asynchronous handling flag. method (get or post).

XMLHttpRequest Object Properties Method onreadystatechange readyState Description The event handler that will be fired on change of state Integer indicating object status: 0 = uninitialized 1 = loading 2 = loaded 3 = interactive 4 = complete Response from server in string format DOM-compatible object of response data Numeric HTTP status code returned by server HTTP status message returned by server responseText responseXML status statusText © 2005 evoch. LLC .

LLC . 2nd Edition By Danny Goodman http://www.oreilly.html JavaScript: The Definitive Bill Kennedy http://www. 4th Edition By David Flanagan http://www.Resources: Books (1/2) Dynamic HTML: The Definitive Reference.html HTML & XHTML: The Definitive Guide.html © 2005 evoch. 5th Edition By Chuck

2nd Edition By Eric Meyer © 2005 evoch. LLC .ericmeyeroncss.Resources: Books (2/2) Cascading Style Sheets: The Definitive More Eric Meyer on CSS By Eric Meyer Eric Meyer on CSS By Eric Meyer http://www.oreilly.

LLC (CSS) (DOM) (HTML/XHTML) .html © 2005 css-discuss listserv css-discuss Wiki Online W3C Website JavaScript Message Board http://www.incutio.html XMLHttpRequest() Information http://developer. IE DOM Inspector for Internet Explorer (not free) By IEInspector Web Development Tools built into Firefox and Mozilla By Mozilla.html © 2005 evoch.ieinspector.Resources: Developer Tools Web Developer Extension for Firefox and Mozilla By Chris Pederick LiveHTTPHeaders for Firefox and Mozilla By David Savard http://livehttpheaders. LLC http://www. LLC .

LLC mosh.teitelbaum@evoch.Closing • Questions? • Download Presentation and Source Code © 2005 evoch.cfm • Contact Info Mosh Teitelbaum evoch. LLC

Sign up to vote on this title
UsefulNot useful