SlideShare a Scribd company logo
DHTML BEHAVIOURS
Computer Call
April 08, 1999
AGENDA
• Evolution of Browser technology
• DHTML Behaviors
• XML + DHTML Behaviors
• Building DHTML Behaviors
• Extending Browser capabilities
INTERNET EXPLORER 3.0
• Great Browsing
• Supported HTML “standard”
• Offered Scripting capabilities to enhance web pages (JavaScript,
VBScript)
• Extensibility: ActiveX Controls & Java Applets let you build web based
applications
• Pioneered CSS support - separate content from style
INTERNET EXPLORER 4.0
• Interactive Experience
• Dynamic HTML Object Model : easier ways to build an active
web page by combining HTML and script
• Dynamic Content
• Dynamic Styles
• Data Binding
• Positioning
• Windowless ActiveX Controls: Multimedia effects
• Pioneered XML support
• DHTML scriptlets: encapsulated HTML content and script
INTERNET EXPLORER 5.0:
DHTML BEHAVIORS
• Component Model for HTML
• Separate behavior from content
• Using CSS behavior property
• Dynamic functionality
• Encapsulate
• Reuse
• Attach behavior to any existing HTML element
• Define custom tags using XML
• Lighter than DHTML Scriptlets in Internet Explorer 4.0
Author
HTML
Engineer
Scripting
Designer
CSS
MAKE DHTML MORE ACCESSIBLE
FOCUS ON YOUR CORE COMPETENCY
USING DHTML TODAY (1 OF 2)
• Three Disciplines
• Content author
• Designer
• Engineer
• Type of content
• News Article - Mostly content
• WebSite page - Mostly Design
• HR Application - Mostly engineering`
USING DHTML TODAY (2 OF 2)
• The Process:
• Step 1: Content author provides content
• Step 2: Designer adds look and feel
• Step 3: Engineer adds Dynamic functionality
• Error prone - Engineer could accidentally change content or
design
• Fragile - Subsequent content change could break Dynamic
functionality
DHTML WITH BEHAVIORS
• New Process:
• Step 1: Engineer creates “Reusable Encapsulated Script Components” i.e.
Behaviors
• Step 2: Content author provides content
• Step 2: Designer adds look and feel and dynamic functionality using CSS
• Dynamic Functionality is now more manageable.
• Engineer no longer has to apply skills to every document
NEW PROCESS
HTML Content/Style Script
.htm, .html .css .htc
PROPOSED CSS
BEHAVIOR PROPERTY (1 OF 2)
• Apply CSS behavior property to any tag
<style>
.mask {behavior:url(mask.htc);}
</style>
<input type=text class=mask maskType=date>
• Implement behavior in script or compiled code (COM component)
• Expose object model
• new methods, properties, and events
PROPOSED CSS BEHAVIOR PROPERTY (2 OF 2)
• Author once for all browsers
• Class= syntax
• CSS behavior property ignored by downlevel browsers
<input type=text class=mask maskType=date>
<UL class=List> Title
<LI> item 1
<LI> item 2
</UL>
DEFINE CUSTOM TAGS - XML
• Declare XML namespace
<HTML xmlns:myns />
• Define default style for XML tags
<STYLE>
@media all {
MYNS:FLY{color:red;behavior:url(fly.htc);}
}
</STYLE>
• Use XML tags with HTML
<MYNS:FLY>This content will fly</MYNS:FLY>
APPLYING CSS TO XML
• Applying CSS to XML
<XML:namespace prefix=”MYNS"/>
<style>
.myClass {background-color: green}
</style></head><body>
<MYNS:turnip style="color: blue">This is XML with
inline styles</MYNS:turnip><br>
<span class=myClass>I'm a SPAN with
class=myClass.</span><br>
<MYNS:carrot class=myClass>I'm an XML tag with
class=myClass.</MYNS:carrot>
XML IN HTML
• XML Namespaces avoid name conflicts
<MYNS:TITLE>This is not an HTML title
</MYNS:TITLE>
• Namespace is defined by the page author
• Downlevel Browsers ignore tags and render the content
• Use XML to define structure
• Example enclose all Product prices in <PROD:PRICE> tag
BUILDING BEHAVIORS: EASY!
• Script
• Author using JavaScript or VBScript
• Similar to script in the document
• Provides full access to the DOM
• Simple COM component
• Author on top of simple, well defined interfaces
• Create true extensions to the browser
• Provides access to the DOM
BUILDING BEHAVIORS IN SCRIPT
• (collapsing bullet point) <UL class=list>
<script language="jscript">
attachEvent("onclick", event_onclick);
function event_onclick(){
for (i = 0; i < children.length; i++){
mystyle = children[i].style;
if (mystyle.display == "none"){
mystyle.display = "";
} else { mystyle.display = "none";
} } }
</script>
EXPOSING PROPERTIES
AND METHODS
(ACCESSING THE BEHAVIORS OBJECT MODEL)
• Expose properties and methods to the document
<PUBLIC:method name=start />
<PUBLIC:property name=from />
……
<script language=JavaScript>
function start()
{…}
FIRING CUSTOM EVENTS
• Event Object is used to pass context
• Create Event Object
evObj = createEventObject();
evObj.SetAttribute(“result”, uniqueID);
• Fire Event
<PUBLIC:event id=finfly name=onFinishedFly
/>
<script language="jscript">
…..
finfly.fire(evObj);
SEMANTICS FOR NAME RESOLUTION WITHIN
HTCS
• Name resolution order
• First - Script
• Second Document of HTC
• Third - element
• Fourth - window
EXTEND BROWSER’S
CAPABILITIES WITH
BINARY BEHAVIORS
• Behaviors can also refer to a binary component
• Suitable for doing the things that a browser cannot do
• Simple set of interfaces
• Internet Explorer Specific components
• For example - Drawing
SUMMARY APPLYING BEHAVIOR
• HTML
<a href=“a.htm” style=“behavior:url(hilite.htc)”></a>
• Object
<a href =“a.htm” style=“behavior:url(#ohilite)”></a>
<object id=oHilite hieght=0 width=0….>
<PARAM NAME=“color” value=“Red”>
</object>
• Default behavior
<input style=“behavior:url(#default#savefavorite)” type=text id=txt1>
TIMING ISSUES
• It’s an asynchronous world
• Document and Behavior are downloaded separately
• One may complete before the other
• Wait for contentChange notification before accessing attributes of
the element
• Events:
• oncontentchange
• ondocumentready
BEHAVIORS - SECURITY
• HTCs are as secure as scripting
• Object Model of the Document
• It’s just script + HTML - known entity
• Binary HTCs (COM components)
• Security with ActiveX Controls
• Behavior declaration in the style refers to an OBJECT tag on the page
<OBJECT ID=“TURNIP” CLASSID=1234…
<STYLE>
.PARSNIP{behavior:url(#TURNIP);}
<STYLE>
Ad

More Related Content

Similar to Implementing DHTML Behavior Script Components (20)

Build Reusable Web Components using HTML5 Web cComponents
Build Reusable Web Components using HTML5 Web cComponentsBuild Reusable Web Components using HTML5 Web cComponents
Build Reusable Web Components using HTML5 Web cComponents
Gil Fink
 
Javascript libraries
Javascript librariesJavascript libraries
Javascript libraries
Dumindu Pahalawatta
 
Internet protocol second unit IIPPT.pptx
Internet protocol second unit IIPPT.pptxInternet protocol second unit IIPPT.pptx
Internet protocol second unit IIPPT.pptx
ssuser92282c
 
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD CombinationLotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Sean Burgess
 
Client-side JavaScript
Client-side JavaScriptClient-side JavaScript
Client-side JavaScript
Lilia Sfaxi
 
DirectToWeb 2.0
DirectToWeb 2.0DirectToWeb 2.0
DirectToWeb 2.0
WO Community
 
Jquery fundamentals
Jquery fundamentalsJquery fundamentals
Jquery fundamentals
Salvatore Fazio
 
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePointSPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
Mark Rackley
 
HTML5: Introduction
HTML5: IntroductionHTML5: Introduction
HTML5: Introduction
Guillermo Paz
 
J query module1
J query module1J query module1
J query module1
Srivatsan Krishnamachari
 
SPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuerySPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuery
Mark Rackley
 
Web Components - The Future is Here
Web Components - The Future is HereWeb Components - The Future is Here
Web Components - The Future is Here
Gil Fink
 
Html5 n css3
Html5 n css3Html5 n css3
Html5 n css3
Jindal Gohil
 
Part 7
Part 7Part 7
Part 7
NOHA AW
 
The SharePoint & jQuery Guide
The SharePoint & jQuery GuideThe SharePoint & jQuery Guide
The SharePoint & jQuery Guide
Mark Rackley
 
The SharePoint and jQuery Guide by Mark Rackley - SPTechCon
The SharePoint and jQuery Guide by Mark Rackley - SPTechConThe SharePoint and jQuery Guide by Mark Rackley - SPTechCon
The SharePoint and jQuery Guide by Mark Rackley - SPTechCon
SPTechCon
 
Web components
Web componentsWeb components
Web components
Gil Fink
 
Getting Started with jQuery
Getting Started with jQueryGetting Started with jQuery
Getting Started with jQuery
Laila Buncab
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
Doris Chen
 
Getting started with jQuery
Getting started with jQueryGetting started with jQuery
Getting started with jQuery
Gill Cleeren
 
Build Reusable Web Components using HTML5 Web cComponents
Build Reusable Web Components using HTML5 Web cComponentsBuild Reusable Web Components using HTML5 Web cComponents
Build Reusable Web Components using HTML5 Web cComponents
Gil Fink
 
Internet protocol second unit IIPPT.pptx
Internet protocol second unit IIPPT.pptxInternet protocol second unit IIPPT.pptx
Internet protocol second unit IIPPT.pptx
ssuser92282c
 
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD CombinationLotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Sean Burgess
 
Client-side JavaScript
Client-side JavaScriptClient-side JavaScript
Client-side JavaScript
Lilia Sfaxi
 
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePointSPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
Mark Rackley
 
SPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuerySPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuery
Mark Rackley
 
Web Components - The Future is Here
Web Components - The Future is HereWeb Components - The Future is Here
Web Components - The Future is Here
Gil Fink
 
The SharePoint & jQuery Guide
The SharePoint & jQuery GuideThe SharePoint & jQuery Guide
The SharePoint & jQuery Guide
Mark Rackley
 
The SharePoint and jQuery Guide by Mark Rackley - SPTechCon
The SharePoint and jQuery Guide by Mark Rackley - SPTechConThe SharePoint and jQuery Guide by Mark Rackley - SPTechCon
The SharePoint and jQuery Guide by Mark Rackley - SPTechCon
SPTechCon
 
Web components
Web componentsWeb components
Web components
Gil Fink
 
Getting Started with jQuery
Getting Started with jQueryGetting Started with jQuery
Getting Started with jQuery
Laila Buncab
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
Doris Chen
 
Getting started with jQuery
Getting started with jQueryGetting started with jQuery
Getting started with jQuery
Gill Cleeren
 

More from Arun Seetharaman (14)

Implementing Load Balancing in COM+ Applications
Implementing Load Balancing in COM+ ApplicationsImplementing Load Balancing in COM+ Applications
Implementing Load Balancing in COM+ Applications
Arun Seetharaman
 
Advanced Windows DNA Scripting with Visual InterDev
Advanced Windows DNA Scripting with Visual InterDevAdvanced Windows DNA Scripting with Visual InterDev
Advanced Windows DNA Scripting with Visual InterDev
Arun Seetharaman
 
Creating Data-based Applications Using DHTML
Creating Data-based Applications Using DHTMLCreating Data-based Applications Using DHTML
Creating Data-based Applications Using DHTML
Arun Seetharaman
 
COM Events for Late-bound Delivery of Information
COM Events for Late-bound Delivery of InformationCOM Events for Late-bound Delivery of Information
COM Events for Late-bound Delivery of Information
Arun Seetharaman
 
Understanding Windows NT Internals - Part 4
Understanding Windows NT Internals - Part 4Understanding Windows NT Internals - Part 4
Understanding Windows NT Internals - Part 4
Arun Seetharaman
 
Understanding Windows NT Internals - Part 5
Understanding Windows NT Internals - Part 5Understanding Windows NT Internals - Part 5
Understanding Windows NT Internals - Part 5
Arun Seetharaman
 
Understanding Windows NT Internals - Part 3
Understanding Windows NT Internals - Part 3Understanding Windows NT Internals - Part 3
Understanding Windows NT Internals - Part 3
Arun Seetharaman
 
Understanding Windows NT Internals - Part 1
Understanding Windows NT Internals - Part 1Understanding Windows NT Internals - Part 1
Understanding Windows NT Internals - Part 1
Arun Seetharaman
 
Understanding Windows NT Internals - Part 2
Understanding Windows NT Internals - Part 2Understanding Windows NT Internals - Part 2
Understanding Windows NT Internals - Part 2
Arun Seetharaman
 
OLE DB Provider Development - Encapsulating a Service Provider
OLE DB Provider Development - Encapsulating a Service ProviderOLE DB Provider Development - Encapsulating a Service Provider
OLE DB Provider Development - Encapsulating a Service Provider
Arun Seetharaman
 
OLE DB 2.0 Architecture - Supporting Remote Data Exchange
OLE DB 2.0 Architecture - Supporting Remote Data ExchangeOLE DB 2.0 Architecture - Supporting Remote Data Exchange
OLE DB 2.0 Architecture - Supporting Remote Data Exchange
Arun Seetharaman
 
Data Structures in Java and Introduction to Collection Framework
Data Structures in Java and Introduction to Collection FrameworkData Structures in Java and Introduction to Collection Framework
Data Structures in Java and Introduction to Collection Framework
Arun Seetharaman
 
AWT Enhancements in V1.1 - Supporting Richer GUI Development
AWT Enhancements in V1.1 - Supporting Richer GUI DevelopmentAWT Enhancements in V1.1 - Supporting Richer GUI Development
AWT Enhancements in V1.1 - Supporting Richer GUI Development
Arun Seetharaman
 
Java Foundation Classes - Building Portable GUIs
Java Foundation Classes - Building Portable GUIsJava Foundation Classes - Building Portable GUIs
Java Foundation Classes - Building Portable GUIs
Arun Seetharaman
 
Implementing Load Balancing in COM+ Applications
Implementing Load Balancing in COM+ ApplicationsImplementing Load Balancing in COM+ Applications
Implementing Load Balancing in COM+ Applications
Arun Seetharaman
 
Advanced Windows DNA Scripting with Visual InterDev
Advanced Windows DNA Scripting with Visual InterDevAdvanced Windows DNA Scripting with Visual InterDev
Advanced Windows DNA Scripting with Visual InterDev
Arun Seetharaman
 
Creating Data-based Applications Using DHTML
Creating Data-based Applications Using DHTMLCreating Data-based Applications Using DHTML
Creating Data-based Applications Using DHTML
Arun Seetharaman
 
COM Events for Late-bound Delivery of Information
COM Events for Late-bound Delivery of InformationCOM Events for Late-bound Delivery of Information
COM Events for Late-bound Delivery of Information
Arun Seetharaman
 
Understanding Windows NT Internals - Part 4
Understanding Windows NT Internals - Part 4Understanding Windows NT Internals - Part 4
Understanding Windows NT Internals - Part 4
Arun Seetharaman
 
Understanding Windows NT Internals - Part 5
Understanding Windows NT Internals - Part 5Understanding Windows NT Internals - Part 5
Understanding Windows NT Internals - Part 5
Arun Seetharaman
 
Understanding Windows NT Internals - Part 3
Understanding Windows NT Internals - Part 3Understanding Windows NT Internals - Part 3
Understanding Windows NT Internals - Part 3
Arun Seetharaman
 
Understanding Windows NT Internals - Part 1
Understanding Windows NT Internals - Part 1Understanding Windows NT Internals - Part 1
Understanding Windows NT Internals - Part 1
Arun Seetharaman
 
Understanding Windows NT Internals - Part 2
Understanding Windows NT Internals - Part 2Understanding Windows NT Internals - Part 2
Understanding Windows NT Internals - Part 2
Arun Seetharaman
 
OLE DB Provider Development - Encapsulating a Service Provider
OLE DB Provider Development - Encapsulating a Service ProviderOLE DB Provider Development - Encapsulating a Service Provider
OLE DB Provider Development - Encapsulating a Service Provider
Arun Seetharaman
 
OLE DB 2.0 Architecture - Supporting Remote Data Exchange
OLE DB 2.0 Architecture - Supporting Remote Data ExchangeOLE DB 2.0 Architecture - Supporting Remote Data Exchange
OLE DB 2.0 Architecture - Supporting Remote Data Exchange
Arun Seetharaman
 
Data Structures in Java and Introduction to Collection Framework
Data Structures in Java and Introduction to Collection FrameworkData Structures in Java and Introduction to Collection Framework
Data Structures in Java and Introduction to Collection Framework
Arun Seetharaman
 
AWT Enhancements in V1.1 - Supporting Richer GUI Development
AWT Enhancements in V1.1 - Supporting Richer GUI DevelopmentAWT Enhancements in V1.1 - Supporting Richer GUI Development
AWT Enhancements in V1.1 - Supporting Richer GUI Development
Arun Seetharaman
 
Java Foundation Classes - Building Portable GUIs
Java Foundation Classes - Building Portable GUIsJava Foundation Classes - Building Portable GUIs
Java Foundation Classes - Building Portable GUIs
Arun Seetharaman
 
Ad

Recently uploaded (20)

Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Wonjun Hwang
 
Top-AI-Based-Tools-for-Game-Developers (1).pptx
Top-AI-Based-Tools-for-Game-Developers (1).pptxTop-AI-Based-Tools-for-Game-Developers (1).pptx
Top-AI-Based-Tools-for-Game-Developers (1).pptx
BR Softech
 
Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?
Eric Torreborre
 
On-Device or Remote? On the Energy Efficiency of Fetching LLM-Generated Conte...
On-Device or Remote? On the Energy Efficiency of Fetching LLM-Generated Conte...On-Device or Remote? On the Energy Efficiency of Fetching LLM-Generated Conte...
On-Device or Remote? On the Energy Efficiency of Fetching LLM-Generated Conte...
Ivano Malavolta
 
Viam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdfViam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdf
camilalamoratta
 
AI Agents at Work: UiPath, Maestro & the Future of Documents
AI Agents at Work: UiPath, Maestro & the Future of DocumentsAI Agents at Work: UiPath, Maestro & the Future of Documents
AI Agents at Work: UiPath, Maestro & the Future of Documents
UiPathCommunity
 
Q1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor PresentationQ1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor Presentation
Dropbox
 
IT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information TechnologyIT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information Technology
SHEHABALYAMANI
 
Config 2025 presentation recap covering both days
Config 2025 presentation recap covering both daysConfig 2025 presentation recap covering both days
Config 2025 presentation recap covering both days
TrishAntoni1
 
Artificial_Intelligence_in_Everyday_Life.pptx
Artificial_Intelligence_in_Everyday_Life.pptxArtificial_Intelligence_in_Everyday_Life.pptx
Artificial_Intelligence_in_Everyday_Life.pptx
03ANMOLCHAURASIYA
 
Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Maarten Verwaest
 
Build With AI - In Person Session Slides.pdf
Build With AI - In Person Session Slides.pdfBuild With AI - In Person Session Slides.pdf
Build With AI - In Person Session Slides.pdf
Google Developer Group - Harare
 
AsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API DesignAsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API Design
leonid54
 
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptxSmart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Seasia Infotech
 
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdfKit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Wonjun Hwang
 
Developing System Infrastructure Design Plan.pptx
Developing System Infrastructure Design Plan.pptxDeveloping System Infrastructure Design Plan.pptx
Developing System Infrastructure Design Plan.pptx
wondimagegndesta
 
IT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information TechnologyIT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information Technology
SHEHABALYAMANI
 
Agentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community MeetupAgentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community Meetup
Manoj Batra (1600 + Connections)
 
machines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdfmachines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdf
AmirStern2
 
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Raffi Khatchadourian
 
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Wonjun Hwang
 
Top-AI-Based-Tools-for-Game-Developers (1).pptx
Top-AI-Based-Tools-for-Game-Developers (1).pptxTop-AI-Based-Tools-for-Game-Developers (1).pptx
Top-AI-Based-Tools-for-Game-Developers (1).pptx
BR Softech
 
Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?
Eric Torreborre
 
On-Device or Remote? On the Energy Efficiency of Fetching LLM-Generated Conte...
On-Device or Remote? On the Energy Efficiency of Fetching LLM-Generated Conte...On-Device or Remote? On the Energy Efficiency of Fetching LLM-Generated Conte...
On-Device or Remote? On the Energy Efficiency of Fetching LLM-Generated Conte...
Ivano Malavolta
 
Viam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdfViam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdf
camilalamoratta
 
AI Agents at Work: UiPath, Maestro & the Future of Documents
AI Agents at Work: UiPath, Maestro & the Future of DocumentsAI Agents at Work: UiPath, Maestro & the Future of Documents
AI Agents at Work: UiPath, Maestro & the Future of Documents
UiPathCommunity
 
Q1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor PresentationQ1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor Presentation
Dropbox
 
IT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information TechnologyIT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information Technology
SHEHABALYAMANI
 
Config 2025 presentation recap covering both days
Config 2025 presentation recap covering both daysConfig 2025 presentation recap covering both days
Config 2025 presentation recap covering both days
TrishAntoni1
 
Artificial_Intelligence_in_Everyday_Life.pptx
Artificial_Intelligence_in_Everyday_Life.pptxArtificial_Intelligence_in_Everyday_Life.pptx
Artificial_Intelligence_in_Everyday_Life.pptx
03ANMOLCHAURASIYA
 
Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Maarten Verwaest
 
AsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API DesignAsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API Design
leonid54
 
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptxSmart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Seasia Infotech
 
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdfKit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Wonjun Hwang
 
Developing System Infrastructure Design Plan.pptx
Developing System Infrastructure Design Plan.pptxDeveloping System Infrastructure Design Plan.pptx
Developing System Infrastructure Design Plan.pptx
wondimagegndesta
 
IT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information TechnologyIT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information Technology
SHEHABALYAMANI
 
machines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdfmachines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdf
AmirStern2
 
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Raffi Khatchadourian
 
Ad

Implementing DHTML Behavior Script Components

  • 2. AGENDA • Evolution of Browser technology • DHTML Behaviors • XML + DHTML Behaviors • Building DHTML Behaviors • Extending Browser capabilities
  • 3. INTERNET EXPLORER 3.0 • Great Browsing • Supported HTML “standard” • Offered Scripting capabilities to enhance web pages (JavaScript, VBScript) • Extensibility: ActiveX Controls & Java Applets let you build web based applications • Pioneered CSS support - separate content from style
  • 4. INTERNET EXPLORER 4.0 • Interactive Experience • Dynamic HTML Object Model : easier ways to build an active web page by combining HTML and script • Dynamic Content • Dynamic Styles • Data Binding • Positioning • Windowless ActiveX Controls: Multimedia effects • Pioneered XML support • DHTML scriptlets: encapsulated HTML content and script
  • 5. INTERNET EXPLORER 5.0: DHTML BEHAVIORS • Component Model for HTML • Separate behavior from content • Using CSS behavior property • Dynamic functionality • Encapsulate • Reuse • Attach behavior to any existing HTML element • Define custom tags using XML • Lighter than DHTML Scriptlets in Internet Explorer 4.0
  • 6. Author HTML Engineer Scripting Designer CSS MAKE DHTML MORE ACCESSIBLE FOCUS ON YOUR CORE COMPETENCY
  • 7. USING DHTML TODAY (1 OF 2) • Three Disciplines • Content author • Designer • Engineer • Type of content • News Article - Mostly content • WebSite page - Mostly Design • HR Application - Mostly engineering`
  • 8. USING DHTML TODAY (2 OF 2) • The Process: • Step 1: Content author provides content • Step 2: Designer adds look and feel • Step 3: Engineer adds Dynamic functionality • Error prone - Engineer could accidentally change content or design • Fragile - Subsequent content change could break Dynamic functionality
  • 9. DHTML WITH BEHAVIORS • New Process: • Step 1: Engineer creates “Reusable Encapsulated Script Components” i.e. Behaviors • Step 2: Content author provides content • Step 2: Designer adds look and feel and dynamic functionality using CSS • Dynamic Functionality is now more manageable. • Engineer no longer has to apply skills to every document
  • 10. NEW PROCESS HTML Content/Style Script .htm, .html .css .htc
  • 11. PROPOSED CSS BEHAVIOR PROPERTY (1 OF 2) • Apply CSS behavior property to any tag <style> .mask {behavior:url(mask.htc);} </style> <input type=text class=mask maskType=date> • Implement behavior in script or compiled code (COM component) • Expose object model • new methods, properties, and events
  • 12. PROPOSED CSS BEHAVIOR PROPERTY (2 OF 2) • Author once for all browsers • Class= syntax • CSS behavior property ignored by downlevel browsers <input type=text class=mask maskType=date> <UL class=List> Title <LI> item 1 <LI> item 2 </UL>
  • 13. DEFINE CUSTOM TAGS - XML • Declare XML namespace <HTML xmlns:myns /> • Define default style for XML tags <STYLE> @media all { MYNS:FLY{color:red;behavior:url(fly.htc);} } </STYLE> • Use XML tags with HTML <MYNS:FLY>This content will fly</MYNS:FLY>
  • 14. APPLYING CSS TO XML • Applying CSS to XML <XML:namespace prefix=”MYNS"/> <style> .myClass {background-color: green} </style></head><body> <MYNS:turnip style="color: blue">This is XML with inline styles</MYNS:turnip><br> <span class=myClass>I'm a SPAN with class=myClass.</span><br> <MYNS:carrot class=myClass>I'm an XML tag with class=myClass.</MYNS:carrot>
  • 15. XML IN HTML • XML Namespaces avoid name conflicts <MYNS:TITLE>This is not an HTML title </MYNS:TITLE> • Namespace is defined by the page author • Downlevel Browsers ignore tags and render the content • Use XML to define structure • Example enclose all Product prices in <PROD:PRICE> tag
  • 16. BUILDING BEHAVIORS: EASY! • Script • Author using JavaScript or VBScript • Similar to script in the document • Provides full access to the DOM • Simple COM component • Author on top of simple, well defined interfaces • Create true extensions to the browser • Provides access to the DOM
  • 17. BUILDING BEHAVIORS IN SCRIPT • (collapsing bullet point) <UL class=list> <script language="jscript"> attachEvent("onclick", event_onclick); function event_onclick(){ for (i = 0; i < children.length; i++){ mystyle = children[i].style; if (mystyle.display == "none"){ mystyle.display = ""; } else { mystyle.display = "none"; } } } </script>
  • 18. EXPOSING PROPERTIES AND METHODS (ACCESSING THE BEHAVIORS OBJECT MODEL) • Expose properties and methods to the document <PUBLIC:method name=start /> <PUBLIC:property name=from /> …… <script language=JavaScript> function start() {…}
  • 19. FIRING CUSTOM EVENTS • Event Object is used to pass context • Create Event Object evObj = createEventObject(); evObj.SetAttribute(“result”, uniqueID); • Fire Event <PUBLIC:event id=finfly name=onFinishedFly /> <script language="jscript"> ….. finfly.fire(evObj);
  • 20. SEMANTICS FOR NAME RESOLUTION WITHIN HTCS • Name resolution order • First - Script • Second Document of HTC • Third - element • Fourth - window
  • 21. EXTEND BROWSER’S CAPABILITIES WITH BINARY BEHAVIORS • Behaviors can also refer to a binary component • Suitable for doing the things that a browser cannot do • Simple set of interfaces • Internet Explorer Specific components • For example - Drawing
  • 22. SUMMARY APPLYING BEHAVIOR • HTML <a href=“a.htm” style=“behavior:url(hilite.htc)”></a> • Object <a href =“a.htm” style=“behavior:url(#ohilite)”></a> <object id=oHilite hieght=0 width=0….> <PARAM NAME=“color” value=“Red”> </object> • Default behavior <input style=“behavior:url(#default#savefavorite)” type=text id=txt1>
  • 23. TIMING ISSUES • It’s an asynchronous world • Document and Behavior are downloaded separately • One may complete before the other • Wait for contentChange notification before accessing attributes of the element • Events: • oncontentchange • ondocumentready
  • 24. BEHAVIORS - SECURITY • HTCs are as secure as scripting • Object Model of the Document • It’s just script + HTML - known entity • Binary HTCs (COM components) • Security with ActiveX Controls • Behavior declaration in the style refers to an OBJECT tag on the page <OBJECT ID=“TURNIP” CLASSID=1234… <STYLE> .PARSNIP{behavior:url(#TURNIP);} <STYLE>