SlideShare a Scribd company logo
< HTML 5 >
Microsoft Community Mgr. Editor of Script Junkie Ajaxian.com writer Director of Community for jQuery JS Library Project Team JavaScript & HTML5 fan boy Rey Bango
http://scriptjunkie.com
What is HTML5?
Newest version of HTML Provides backwards compatibility Your HTML/XHTML continue to work Supported by all modern browsers IE9 Beta Firefox Chrome Opera Safari HTML5
Specification of HTML published by W3C W3C HTML5 Spec => 900+ pages Work started on HTML5 in late 2003 First Working Draft published January 2008 WHATWG Last Call on October 28, 2009 Expected Candidate Recommendation - 2012 W3C Recommendation - 2022 or later * http:// dev.w3.org/html5/spec / HTML5
The Hype
Flickr: lambj
Flickr: mackro
Flickr: tvangoethem
 
 
HTML5 has become an umbrella term for everything including CSS3. It’s not! It’s an upgrade to the HTML specification It provides backward compatibility Enhances some tags and brings new semantic tags Programmatic components like Canvas & Drag-and-Drop HTML5’s Umbrella Effect
Flickr: boblet
What can be considered part of HTML5 then?  Canvas – API for 2D drawing Audio & Video – In-browser audio & video; no plugins New semantic elements such as  article, footer, header, nav & section Sub-projects: Web Storage Geolocation Drag and Drop How to tell what you can use? http://www.caniuse.com/ So What’s in It?
What is NOT in HTML5 then? CSS Transforms – rotation, scaling, skewing of elements CSS Transitions – transitions between CSS property changes Border Radius – rounded corners Box Shadow- shadow selected elements  @font-face – web fonts This is CSS3!! What’s Not?
… or cats, babies and staplers.
What are Developers Raving About?
The Cool Stuff:  New semantic elements such as  article, footer, header, nav & section Canvas – API for 2D drawing Video – In-browser video; no plugins Web Storage – offline storage Forms – form enhancements Geolocation HTML5 is Cool
Flickr: boblet
Flickr: lejoe
Reliable Features
doctype <!DOCTYPE HTML PUBLIC &quot;-//W3C//Dtd HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/tr/html4/loose.dtd&quot;> HTML 4.01: HTML5 <!doctype html>
<div id=”nav”> <div id=”sidebar”> <div id=”article”> <div id=”footer”> <div id=”header”> HTML Tags
<nav> <aside> <section> <article> <footer> <header> Semantic HTML Tags
<nav> <aside> <nav> <section> <article> <footer> <header> Semantic HTML Tags
<address>   Written by:<br/> <a href=&quot;/people/show/23&quot;>Timothy Fisher</a>, <br/> Address: 25296 Hunter Lane, Flat Rock, MI  48134 <br/> Phone: 555-1212 </address>  Address applies to the nearest Article or Body tag. More Semantic HTML Tags Address Prior to HTML5 the Address element applied to the document/body as a whole
<div class=&quot;car&quot;  data-brand =&quot; ford &quot;  data-model =&quot; mustang &quot;> <button class=&quot;fire&quot;>  </div> More Semantic HTML Tags Data Attributes //Using DOM's getAttribute() property var brand=mydiv.getAttribute(&quot;data-brand&quot;) //returns &quot;ford&quot; mydiv.setAttribute(&quot;data-brand&quot;, &quot;mazda&quot;) //changes &quot;data-brand&quot; to &quot;mazda&quot; mydiv.removeAttribute(&quot;data-brand&quot;) //removes &quot;data-brand&quot; attribute entirely //Using JavaScript's dataset property var brand=mydiv.dataset.brand //returns &quot;ford&quot; mydiv.dataset.brand='mazda' //changes &quot;data-brand&quot; to &quot;mazda&quot; mydiv.dataset.brand=null //removes &quot;data-brand&quot; attribute Custom data attribs were always possible but prior to HTML5 they would cause validation errors.
<section>  <hgroup> <h1>Mobile Phones</h1> <h2>Different Smart Phones</h2>  </hgroup>  <p>Some of the more popular mobile smart phones</p>  <article> <h1>Apple iPhone</h1>  <p>A popular smart phone from Apple.</p> </article>  <article> <h1>Android-based Phones</h1>  <p>A series of smart phones that use the Google Android operating system.</p> </article> </section> More Semantic HTML Tags Section, hgroup, Article These elements replace many of your divs
<figure> <img src=&quot;ninja_guy.jpg&quot; alt=&quot;A Standing Ninja Guy.&quot;> <figcaption>Cool Ninja Guy</figcaption> </figure> More Semantic HTML Tags Figure and Figure Caption The browser can position the caption for you Cool Ninja Guy
More Semantic HTML Tags Menu and Command <menu label=&quot;Hero List&quot;> <command type=&quot;radio&quot; radiogroup=&quot;herolist&quot; label=&quot;Spiderman&quot;> <command type=&quot;radio&quot; radiogroup=&quot;herolist&quot; label=&quot;Superman&quot;> <command type=&quot;radio&quot; radiogroup=&quot;herolist&quot; label=&quot;Batman&quot;> </menu> a simple radio button group
<menu type=&quot;toolbar&quot;>  <li> <menu label=&quot;File&quot;>  <button type=&quot;button&quot; onclick=&quot;file_new()&quot;>New...</button> <button type=&quot;button&quot; onclick=&quot;file_open()&quot;>Open...</button> <button type=&quot;button&quot; onclick=&quot;file_save()&quot;>Save...</button> <button type=&quot;button&quot;onclick=&quot;file_saveas()&quot;>Save As...</button> </menu>  </li>  <li> <menu label=&quot;Edit&quot;>  <button type=&quot;button&quot; onclick=&quot;edit_copy()&quot;>Copy...</button> <button type=&quot;button&quot; onclick=&quot;edit_cut()&quot;>Cut...</button> <button type=&quot;button&quot; onclick=&quot;edit_paste()&quot;>Paste...</button> </menu>  </li>  </menu> More Semantic HTML Tags Menu (continued)
<video  src =”ironman.mp4” /> Automatically show native controls <video  src =”ironman.mp4”  controls   /> Video
Codec Support Credit: Encoding.com
<video controls/>   <source src=”ironman.mp4” />   <source src=”ironman. webm ” /> </video> Video ironman.mp4 ironman.webm
<audio src=” teenage_dream.mp3”></audio> <audio controls> <source src=”teenage_dream.mp3”/> <source src=”teenage_dream.ogg”/> </audio> Audio Provides a download link for non-supporting browsers: <audio src=”teenage_dream.ogg” autoplay controls loop>  <a href=” teenage_dream.ogg”>download</a> </audio>
<canvas id=”square”>  fallback content </canvas> <script>  // create basic filled square canvas = canvas.getElementById(‘square’);  context =  canvas.getContext(‘2d’);  context. fillStyle  = “#000000”;  context. fillRect (0, 0, 100, 100);  </script> Canvas A complete drawing and animation API
<script>  document.getElementById(‘notepad’).contentEditable = true; </script> Editable Content Turn any element into an editable area
Cross-Domain Messaging // sender var o = document.getElementsByTagName('iframe')[0]; o.contentWindow.postMessage('Hello world', ' http://b.example.org/' ); // recipient addEvent(window, &quot;message&quot;, function(e){    document.getElementById(&quot;rcvd_message&quot;).innerHTML = e.origin + &quot; said: &quot; + e.data; });
sessionStorage.setItem(key, value); sessionStorage.getItem(key); localStorage.setItem(key, value); localStorage.getItem(key); Session Storage Save key/value pairs to a client-side data store implemented by browser Session store expires when the browser is closed
Some Caution Plz
Output   < progress   id=&quot;p&quot; max=100><span>0</span>%</ progress > Progress < output   name=&quot;result&quot;></ output > Progress
Storage space usage:  <meter value=6 max=8> 6 blocks used (out of 8 total) </meter> Voter turnout:  <meter value=0.75> <img alt=&quot;75%&quot; src=&quot;graph75.png&quot;> </meter> Tickets sold: <meter min=&quot;0&quot; max=&quot;100&quot; value=&quot;75&quot;></meter> Meter Meter
<div draggable=”true”></div> // set data to access at target addEvent(div, “dragstart”, function(e) {  e.dataTransfer.setData(‘foo’, ‘bar’); }, true); // access data from dragged object addEvent(div, ‘dragend’, function(e) {  e.dataTransfer.getData(‘foo’); }, true); Drag and Drop HTML5 drag and drop should work across frames, and  across browser windows . HTML5 drag and drop also allows users to drag and drop data  to and from non-web applications , i.e. out of the browser or into the browser
<input type=”email” /> Input Types tel search email url datetime date range color Unsupported browsers default to text type Future browsers will display appropriate UI controls
<input type=&quot;range&quot; min=&quot;-100&quot; max=&quot;100&quot; value=&quot;0&quot;  step=&quot;10&quot; name=&quot;power&quot; list=&quot;powers&quot;>  <datalist id=&quot;powers&quot;> <option value=&quot;0&quot;>  <option value=&quot;-30&quot;>  <option value=&quot;30&quot;>  <option value=&quot;+50&quot;> </datalist> Input Types Input Type Range + Datalist
<input type=file multiple> Input Types File Upload Multiple
Input Types Datalist Used to provide Auto Complete feature <input list=&quot;movies&quot; /> <datalist id=&quot;movies&quot;> <option>The Dark Knight</option> <option>Spiderman 3</option> <option>X-Men</option> </datalist>
<input name=&quot;custname&quot; required> <script>  form.checkValidity();  </script> Form Validation By adding ‘required’ attribute you can take advantage of validity checking without custom JavaScript.
<html manifest=”cache.manifest”> Offline Applications Offline Applications using manifest Run a web application in offline mode, disconnected from Internet provide a cache.manifest file: Of course your app will still have failures if it tries to pull live data from the Internet uses MIME type:   text/cache-manifest CACHE MANIFEST clock.html clock.css clock.js
window.history.back(); window.history.forward(); window.history.go(2); window.history.length; window.history.pushState(data, title, url); window.history.replaceState(data, title, url); JavaScript API for moving through browser history History API
navigator. geolocation . getCurrentPosition( function(position) { // display position } ); Geolocation Build location-aware apps without access  to native mobile apis
Local Storage A set of APIs to manipulate client-side databases using SQL Web SQL Apple Google Opera IndexedDB has replaced Web SQL
Web Sockets Opens a persistent connection to the server Can be used for server to browser push Restricted communication to origin server Eliminates need to poll for data var ws = new WebSocket(&quot;ws://friendfeed.com/websocket&quot;); ws.onopen = function() { ws.send(&quot;This is a message from the browser to the server&quot;); }; ws.onmessage = function(event) { alert(&quot;The server sent a message: &quot; + event.data); };
- Provide “threads” for JavaScript execution - Don’t have access to DOM or page.  - Have to communicate through postMessage API Web Workers
W3C says we shouldn’t  use HTML5!!!!
Create a solid cross-browser base to start from & use HTML5 to enhance sites Fallbacks can be used to degrade gracefully when necessary <video controls width=&quot;500&quot;> <source src=&quot;video.ogg&quot; /> <source src=&quot;video.mp4&quot; /> <embed src=&quot;http://blip.tv/play/gcMV&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;1024&quot; height=&quot;798&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot;></embed> </video> If HTML5 video is not supported, flash video will load Progressive Enhancement
Support for older browsers  Use polyfills to fallback gracefully or mimic functionality HTML5Shim Modernizr Explorercanvas Socket.IO Big List of Polyfills:  http://bit.ly/b5HV1x Polyfills
I’m asking you, the developer, to look at the technology that’s available to you and chose the solution that suits your problem best. If that happens to be an HTML5 technology, or a non-HTML5 API, or even Flash, you’ve chosen the individual specific technology, not a f**king buzzword. Remy Sharp, 10/7/10 http://bit.ly/cQUGdM
http://html5.timothyfisher.com http://diveintohtml.com http://html5doctor.com/ http://html5demos.com http://caniuse.com http://html5rocks.com Resources
Introducing HTML5  (Bruce Lawson & Remy Sharp) HTML5: Up and Running (Mark Pilgrim) Books
Timothy Fisher http://html5.timothyfisher.com Credit
@reybango blog.reybango.com [email_address]
Ad

More Related Content

What's hot (20)

Doing More with LESS for CSS
Doing More with LESS for CSSDoing More with LESS for CSS
Doing More with LESS for CSS
Todd Anglin
 
HTML5
HTML5HTML5
HTML5
Hatem Mahmoud
 
An Introduction to HTML5
An Introduction to HTML5An Introduction to HTML5
An Introduction to HTML5
Steven Chipman
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5
dynamis
 
An Introduction To HTML5
An Introduction To HTML5An Introduction To HTML5
An Introduction To HTML5
Robert Nyman
 
HTML5 & Friends
HTML5 & FriendsHTML5 & Friends
HTML5 & Friends
Remy Sharp
 
iPhone Web Applications: HTML5, CSS3 & dev tips for iPhone development
iPhone Web Applications: HTML5, CSS3 & dev tips for iPhone developmentiPhone Web Applications: HTML5, CSS3 & dev tips for iPhone development
iPhone Web Applications: HTML5, CSS3 & dev tips for iPhone development
Estelle Weyl
 
HTML5 Semantics, Accessibility & Forms [Carsonified HTML5 Online Conference]
HTML5 Semantics, Accessibility & Forms [Carsonified HTML5 Online Conference]HTML5 Semantics, Accessibility & Forms [Carsonified HTML5 Online Conference]
HTML5 Semantics, Accessibility & Forms [Carsonified HTML5 Online Conference]
Aaron Gustafson
 
HTML5: a quick overview
HTML5: a quick overviewHTML5: a quick overview
HTML5: a quick overview
Mark Whitaker
 
Building mobile applications with DrupalGap
Building mobile applications with DrupalGapBuilding mobile applications with DrupalGap
Building mobile applications with DrupalGap
Alex S
 
HTML5 and the web of tomorrow!
HTML5  and the  web of tomorrow!HTML5  and the  web of tomorrow!
HTML5 and the web of tomorrow!
Christian Heilmann
 
Looking into HTML5
Looking into HTML5Looking into HTML5
Looking into HTML5
Christopher Schmitt
 
HTML5 - Introduction
HTML5 - IntroductionHTML5 - Introduction
HTML5 - Introduction
Davy De Pauw
 
HTML5 JS APIs
HTML5 JS APIsHTML5 JS APIs
HTML5 JS APIs
Remy Sharp
 
Peter lubbers-html5-overview-sf-dev-conf-2011
Peter lubbers-html5-overview-sf-dev-conf-2011Peter lubbers-html5-overview-sf-dev-conf-2011
Peter lubbers-html5-overview-sf-dev-conf-2011
Peter Lubbers
 
Css, xhtml, javascript
Css, xhtml, javascriptCss, xhtml, javascript
Css, xhtml, javascript
Trần Khải Hoàng
 
Taking Advantage of Client Side / JavsScript Templates in Rich Internet Appli...
Taking Advantage of Client Side / JavsScript Templates in Rich Internet Appli...Taking Advantage of Client Side / JavsScript Templates in Rich Internet Appli...
Taking Advantage of Client Side / JavsScript Templates in Rich Internet Appli...
Mahbubur Rahman
 
HTML/HTML5
HTML/HTML5HTML/HTML5
HTML/HTML5
People Strategists
 
Html 5
Html 5Html 5
Html 5
manujayarajkm
 
Getting Started with HTML5 in Tech Com (STC 2012)
Getting Started with HTML5 in Tech Com (STC 2012)Getting Started with HTML5 in Tech Com (STC 2012)
Getting Started with HTML5 in Tech Com (STC 2012)
Peter Lubbers
 
Doing More with LESS for CSS
Doing More with LESS for CSSDoing More with LESS for CSS
Doing More with LESS for CSS
Todd Anglin
 
An Introduction to HTML5
An Introduction to HTML5An Introduction to HTML5
An Introduction to HTML5
Steven Chipman
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5
dynamis
 
An Introduction To HTML5
An Introduction To HTML5An Introduction To HTML5
An Introduction To HTML5
Robert Nyman
 
HTML5 & Friends
HTML5 & FriendsHTML5 & Friends
HTML5 & Friends
Remy Sharp
 
iPhone Web Applications: HTML5, CSS3 & dev tips for iPhone development
iPhone Web Applications: HTML5, CSS3 & dev tips for iPhone developmentiPhone Web Applications: HTML5, CSS3 & dev tips for iPhone development
iPhone Web Applications: HTML5, CSS3 & dev tips for iPhone development
Estelle Weyl
 
HTML5 Semantics, Accessibility & Forms [Carsonified HTML5 Online Conference]
HTML5 Semantics, Accessibility & Forms [Carsonified HTML5 Online Conference]HTML5 Semantics, Accessibility & Forms [Carsonified HTML5 Online Conference]
HTML5 Semantics, Accessibility & Forms [Carsonified HTML5 Online Conference]
Aaron Gustafson
 
HTML5: a quick overview
HTML5: a quick overviewHTML5: a quick overview
HTML5: a quick overview
Mark Whitaker
 
Building mobile applications with DrupalGap
Building mobile applications with DrupalGapBuilding mobile applications with DrupalGap
Building mobile applications with DrupalGap
Alex S
 
HTML5 and the web of tomorrow!
HTML5  and the  web of tomorrow!HTML5  and the  web of tomorrow!
HTML5 and the web of tomorrow!
Christian Heilmann
 
HTML5 - Introduction
HTML5 - IntroductionHTML5 - Introduction
HTML5 - Introduction
Davy De Pauw
 
Peter lubbers-html5-overview-sf-dev-conf-2011
Peter lubbers-html5-overview-sf-dev-conf-2011Peter lubbers-html5-overview-sf-dev-conf-2011
Peter lubbers-html5-overview-sf-dev-conf-2011
Peter Lubbers
 
Taking Advantage of Client Side / JavsScript Templates in Rich Internet Appli...
Taking Advantage of Client Side / JavsScript Templates in Rich Internet Appli...Taking Advantage of Client Side / JavsScript Templates in Rich Internet Appli...
Taking Advantage of Client Side / JavsScript Templates in Rich Internet Appli...
Mahbubur Rahman
 
Getting Started with HTML5 in Tech Com (STC 2012)
Getting Started with HTML5 in Tech Com (STC 2012)Getting Started with HTML5 in Tech Com (STC 2012)
Getting Started with HTML5 in Tech Com (STC 2012)
Peter Lubbers
 

Similar to HTML5 Overview (20)

HTML5 - techMaine Presentation 5/18/09
HTML5 - techMaine Presentation 5/18/09HTML5 - techMaine Presentation 5/18/09
HTML5 - techMaine Presentation 5/18/09
pemaquid
 
Flex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 FinalFlex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 Final
ematrix
 
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Alfresco Software
 
What I brought back from Austin
What I brought back from AustinWhat I brought back from Austin
What I brought back from Austin
Lisa Adkins
 
HTML5: 5 Quick Wins
HTML5:  5 Quick WinsHTML5:  5 Quick Wins
HTML5: 5 Quick Wins
Jeff Leombruno
 
Lecture1 B Frames&Forms
Lecture1 B  Frames&FormsLecture1 B  Frames&Forms
Lecture1 B Frames&Forms
Sur College of Applied Sciences
 
Developing Gadgets
Developing GadgetsDeveloping Gadgets
Developing Gadgets
Quirk
 
ImplementingChangeTrackingAndFlagging
ImplementingChangeTrackingAndFlaggingImplementingChangeTrackingAndFlagging
ImplementingChangeTrackingAndFlagging
Suite Solutions
 
HTML5
HTML5HTML5
HTML5
Doncho Minkov
 
Html5: What is it?
Html5: What is it? Html5: What is it?
Html5: What is it?
joeydehnert
 
Html5
Html5Html5
Html5
anubavam-techkt
 
HTML5 with examples
HTML5 with examplesHTML5 with examples
HTML5 with examples
gopivthmk
 
Ajax ons2
Ajax ons2Ajax ons2
Ajax ons2
Chad Davis
 
Html5
Html5Html5
Html5
dotNETUserGroupDnipro
 
HTML5 - What h#@$ is it?
HTML5 - What h#@$ is it?HTML5 - What h#@$ is it?
HTML5 - What h#@$ is it?
Carlos Ramon
 
HTML5 Fundamentals
HTML5 FundamentalsHTML5 Fundamentals
HTML5 Fundamentals
Doncho Minkov
 
Ajax
AjaxAjax
Ajax
wangjiaz
 
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010
Sergey Ilinsky
 
Mashups as Collection of Widgets
Mashups as Collection of WidgetsMashups as Collection of Widgets
Mashups as Collection of Widgets
giurca
 
Mobile web with jQuery Mobile
Mobile web with jQuery MobileMobile web with jQuery Mobile
Mobile web with jQuery Mobile
Andreas Bjärlestam
 
HTML5 - techMaine Presentation 5/18/09
HTML5 - techMaine Presentation 5/18/09HTML5 - techMaine Presentation 5/18/09
HTML5 - techMaine Presentation 5/18/09
pemaquid
 
Flex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 FinalFlex For Flash Developers Ff 2006 Final
Flex For Flash Developers Ff 2006 Final
ematrix
 
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Alfresco Software
 
What I brought back from Austin
What I brought back from AustinWhat I brought back from Austin
What I brought back from Austin
Lisa Adkins
 
Developing Gadgets
Developing GadgetsDeveloping Gadgets
Developing Gadgets
Quirk
 
ImplementingChangeTrackingAndFlagging
ImplementingChangeTrackingAndFlaggingImplementingChangeTrackingAndFlagging
ImplementingChangeTrackingAndFlagging
Suite Solutions
 
Html5: What is it?
Html5: What is it? Html5: What is it?
Html5: What is it?
joeydehnert
 
HTML5 with examples
HTML5 with examplesHTML5 with examples
HTML5 with examples
gopivthmk
 
HTML5 - What h#@$ is it?
HTML5 - What h#@$ is it?HTML5 - What h#@$ is it?
HTML5 - What h#@$ is it?
Carlos Ramon
 
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010
Sergey Ilinsky
 
Mashups as Collection of Widgets
Mashups as Collection of WidgetsMashups as Collection of Widgets
Mashups as Collection of Widgets
giurca
 
Ad

More from reybango (9)

NationJS: Node Noob to not so Noob
NationJS: Node Noob to not so Noob NationJS: Node Noob to not so Noob
NationJS: Node Noob to not so Noob
reybango
 
From Node.js noob to not so noob
From Node.js noob to not so noobFrom Node.js noob to not so noob
From Node.js noob to not so noob
reybango
 
How to Test IE & Microsoft Edge on OS X & Linux - SFHTML
How to Test IE & Microsoft Edge on OS X & Linux - SFHTMLHow to Test IE & Microsoft Edge on OS X & Linux - SFHTML
How to Test IE & Microsoft Edge on OS X & Linux - SFHTML
reybango
 
Woah, You Can Test IE & Microsoft Edge on a Mac?
Woah, You Can Test IE & Microsoft Edge on a Mac?Woah, You Can Test IE & Microsoft Edge on a Mac?
Woah, You Can Test IE & Microsoft Edge on a Mac?
reybango
 
A day in the life of a Developer Advocate
A day in the life of a Developer AdvocateA day in the life of a Developer Advocate
A day in the life of a Developer Advocate
reybango
 
Getting into ember.js
Getting into ember.jsGetting into ember.js
Getting into ember.js
reybango
 
Filling the HTML5 Gaps with Polyfills and Shims
Filling the HTML5 Gaps with Polyfills and ShimsFilling the HTML5 Gaps with Polyfills and Shims
Filling the HTML5 Gaps with Polyfills and Shims
reybango
 
MAOW Berlin '09 Keynote
MAOW Berlin '09 KeynoteMAOW Berlin '09 Keynote
MAOW Berlin '09 Keynote
reybango
 
AMO Barcamp Miami
AMO Barcamp MiamiAMO Barcamp Miami
AMO Barcamp Miami
reybango
 
NationJS: Node Noob to not so Noob
NationJS: Node Noob to not so Noob NationJS: Node Noob to not so Noob
NationJS: Node Noob to not so Noob
reybango
 
From Node.js noob to not so noob
From Node.js noob to not so noobFrom Node.js noob to not so noob
From Node.js noob to not so noob
reybango
 
How to Test IE & Microsoft Edge on OS X & Linux - SFHTML
How to Test IE & Microsoft Edge on OS X & Linux - SFHTMLHow to Test IE & Microsoft Edge on OS X & Linux - SFHTML
How to Test IE & Microsoft Edge on OS X & Linux - SFHTML
reybango
 
Woah, You Can Test IE & Microsoft Edge on a Mac?
Woah, You Can Test IE & Microsoft Edge on a Mac?Woah, You Can Test IE & Microsoft Edge on a Mac?
Woah, You Can Test IE & Microsoft Edge on a Mac?
reybango
 
A day in the life of a Developer Advocate
A day in the life of a Developer AdvocateA day in the life of a Developer Advocate
A day in the life of a Developer Advocate
reybango
 
Getting into ember.js
Getting into ember.jsGetting into ember.js
Getting into ember.js
reybango
 
Filling the HTML5 Gaps with Polyfills and Shims
Filling the HTML5 Gaps with Polyfills and ShimsFilling the HTML5 Gaps with Polyfills and Shims
Filling the HTML5 Gaps with Polyfills and Shims
reybango
 
MAOW Berlin '09 Keynote
MAOW Berlin '09 KeynoteMAOW Berlin '09 Keynote
MAOW Berlin '09 Keynote
reybango
 
AMO Barcamp Miami
AMO Barcamp MiamiAMO Barcamp Miami
AMO Barcamp Miami
reybango
 
Ad

Recently uploaded (20)

AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 

HTML5 Overview

  • 2. Microsoft Community Mgr. Editor of Script Junkie Ajaxian.com writer Director of Community for jQuery JS Library Project Team JavaScript & HTML5 fan boy Rey Bango
  • 5. Newest version of HTML Provides backwards compatibility Your HTML/XHTML continue to work Supported by all modern browsers IE9 Beta Firefox Chrome Opera Safari HTML5
  • 6. Specification of HTML published by W3C W3C HTML5 Spec => 900+ pages Work started on HTML5 in late 2003 First Working Draft published January 2008 WHATWG Last Call on October 28, 2009 Expected Candidate Recommendation - 2012 W3C Recommendation - 2022 or later * http:// dev.w3.org/html5/spec / HTML5
  • 11.  
  • 12.  
  • 13. HTML5 has become an umbrella term for everything including CSS3. It’s not! It’s an upgrade to the HTML specification It provides backward compatibility Enhances some tags and brings new semantic tags Programmatic components like Canvas & Drag-and-Drop HTML5’s Umbrella Effect
  • 15. What can be considered part of HTML5 then? Canvas – API for 2D drawing Audio & Video – In-browser audio & video; no plugins New semantic elements such as article, footer, header, nav & section Sub-projects: Web Storage Geolocation Drag and Drop How to tell what you can use? http://www.caniuse.com/ So What’s in It?
  • 16. What is NOT in HTML5 then? CSS Transforms – rotation, scaling, skewing of elements CSS Transitions – transitions between CSS property changes Border Radius – rounded corners Box Shadow- shadow selected elements @font-face – web fonts This is CSS3!! What’s Not?
  • 17. … or cats, babies and staplers.
  • 18. What are Developers Raving About?
  • 19. The Cool Stuff: New semantic elements such as article, footer, header, nav & section Canvas – API for 2D drawing Video – In-browser video; no plugins Web Storage – offline storage Forms – form enhancements Geolocation HTML5 is Cool
  • 23. doctype <!DOCTYPE HTML PUBLIC &quot;-//W3C//Dtd HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/tr/html4/loose.dtd&quot;> HTML 4.01: HTML5 <!doctype html>
  • 24. <div id=”nav”> <div id=”sidebar”> <div id=”article”> <div id=”footer”> <div id=”header”> HTML Tags
  • 25. <nav> <aside> <section> <article> <footer> <header> Semantic HTML Tags
  • 26. <nav> <aside> <nav> <section> <article> <footer> <header> Semantic HTML Tags
  • 27. <address> Written by:<br/> <a href=&quot;/people/show/23&quot;>Timothy Fisher</a>, <br/> Address: 25296 Hunter Lane, Flat Rock, MI 48134 <br/> Phone: 555-1212 </address> Address applies to the nearest Article or Body tag. More Semantic HTML Tags Address Prior to HTML5 the Address element applied to the document/body as a whole
  • 28. <div class=&quot;car&quot; data-brand =&quot; ford &quot; data-model =&quot; mustang &quot;> <button class=&quot;fire&quot;> </div> More Semantic HTML Tags Data Attributes //Using DOM's getAttribute() property var brand=mydiv.getAttribute(&quot;data-brand&quot;) //returns &quot;ford&quot; mydiv.setAttribute(&quot;data-brand&quot;, &quot;mazda&quot;) //changes &quot;data-brand&quot; to &quot;mazda&quot; mydiv.removeAttribute(&quot;data-brand&quot;) //removes &quot;data-brand&quot; attribute entirely //Using JavaScript's dataset property var brand=mydiv.dataset.brand //returns &quot;ford&quot; mydiv.dataset.brand='mazda' //changes &quot;data-brand&quot; to &quot;mazda&quot; mydiv.dataset.brand=null //removes &quot;data-brand&quot; attribute Custom data attribs were always possible but prior to HTML5 they would cause validation errors.
  • 29. <section> <hgroup> <h1>Mobile Phones</h1> <h2>Different Smart Phones</h2> </hgroup> <p>Some of the more popular mobile smart phones</p> <article> <h1>Apple iPhone</h1> <p>A popular smart phone from Apple.</p> </article> <article> <h1>Android-based Phones</h1> <p>A series of smart phones that use the Google Android operating system.</p> </article> </section> More Semantic HTML Tags Section, hgroup, Article These elements replace many of your divs
  • 30. <figure> <img src=&quot;ninja_guy.jpg&quot; alt=&quot;A Standing Ninja Guy.&quot;> <figcaption>Cool Ninja Guy</figcaption> </figure> More Semantic HTML Tags Figure and Figure Caption The browser can position the caption for you Cool Ninja Guy
  • 31. More Semantic HTML Tags Menu and Command <menu label=&quot;Hero List&quot;> <command type=&quot;radio&quot; radiogroup=&quot;herolist&quot; label=&quot;Spiderman&quot;> <command type=&quot;radio&quot; radiogroup=&quot;herolist&quot; label=&quot;Superman&quot;> <command type=&quot;radio&quot; radiogroup=&quot;herolist&quot; label=&quot;Batman&quot;> </menu> a simple radio button group
  • 32. <menu type=&quot;toolbar&quot;> <li> <menu label=&quot;File&quot;> <button type=&quot;button&quot; onclick=&quot;file_new()&quot;>New...</button> <button type=&quot;button&quot; onclick=&quot;file_open()&quot;>Open...</button> <button type=&quot;button&quot; onclick=&quot;file_save()&quot;>Save...</button> <button type=&quot;button&quot;onclick=&quot;file_saveas()&quot;>Save As...</button> </menu> </li> <li> <menu label=&quot;Edit&quot;> <button type=&quot;button&quot; onclick=&quot;edit_copy()&quot;>Copy...</button> <button type=&quot;button&quot; onclick=&quot;edit_cut()&quot;>Cut...</button> <button type=&quot;button&quot; onclick=&quot;edit_paste()&quot;>Paste...</button> </menu> </li> </menu> More Semantic HTML Tags Menu (continued)
  • 33. <video src =”ironman.mp4” /> Automatically show native controls <video src =”ironman.mp4” controls /> Video
  • 34. Codec Support Credit: Encoding.com
  • 35. <video controls/> <source src=”ironman.mp4” /> <source src=”ironman. webm ” /> </video> Video ironman.mp4 ironman.webm
  • 36. <audio src=” teenage_dream.mp3”></audio> <audio controls> <source src=”teenage_dream.mp3”/> <source src=”teenage_dream.ogg”/> </audio> Audio Provides a download link for non-supporting browsers: <audio src=”teenage_dream.ogg” autoplay controls loop> <a href=” teenage_dream.ogg”>download</a> </audio>
  • 37. <canvas id=”square”> fallback content </canvas> <script> // create basic filled square canvas = canvas.getElementById(‘square’); context = canvas.getContext(‘2d’); context. fillStyle = “#000000”; context. fillRect (0, 0, 100, 100); </script> Canvas A complete drawing and animation API
  • 38. <script> document.getElementById(‘notepad’).contentEditable = true; </script> Editable Content Turn any element into an editable area
  • 39. Cross-Domain Messaging // sender var o = document.getElementsByTagName('iframe')[0]; o.contentWindow.postMessage('Hello world', ' http://b.example.org/' ); // recipient addEvent(window, &quot;message&quot;, function(e){    document.getElementById(&quot;rcvd_message&quot;).innerHTML = e.origin + &quot; said: &quot; + e.data; });
  • 40. sessionStorage.setItem(key, value); sessionStorage.getItem(key); localStorage.setItem(key, value); localStorage.getItem(key); Session Storage Save key/value pairs to a client-side data store implemented by browser Session store expires when the browser is closed
  • 42. Output < progress id=&quot;p&quot; max=100><span>0</span>%</ progress > Progress < output name=&quot;result&quot;></ output > Progress
  • 43. Storage space usage: <meter value=6 max=8> 6 blocks used (out of 8 total) </meter> Voter turnout: <meter value=0.75> <img alt=&quot;75%&quot; src=&quot;graph75.png&quot;> </meter> Tickets sold: <meter min=&quot;0&quot; max=&quot;100&quot; value=&quot;75&quot;></meter> Meter Meter
  • 44. <div draggable=”true”></div> // set data to access at target addEvent(div, “dragstart”, function(e) { e.dataTransfer.setData(‘foo’, ‘bar’); }, true); // access data from dragged object addEvent(div, ‘dragend’, function(e) { e.dataTransfer.getData(‘foo’); }, true); Drag and Drop HTML5 drag and drop should work across frames, and across browser windows . HTML5 drag and drop also allows users to drag and drop data to and from non-web applications , i.e. out of the browser or into the browser
  • 45. <input type=”email” /> Input Types tel search email url datetime date range color Unsupported browsers default to text type Future browsers will display appropriate UI controls
  • 46. <input type=&quot;range&quot; min=&quot;-100&quot; max=&quot;100&quot; value=&quot;0&quot; step=&quot;10&quot; name=&quot;power&quot; list=&quot;powers&quot;> <datalist id=&quot;powers&quot;> <option value=&quot;0&quot;> <option value=&quot;-30&quot;> <option value=&quot;30&quot;> <option value=&quot;+50&quot;> </datalist> Input Types Input Type Range + Datalist
  • 47. <input type=file multiple> Input Types File Upload Multiple
  • 48. Input Types Datalist Used to provide Auto Complete feature <input list=&quot;movies&quot; /> <datalist id=&quot;movies&quot;> <option>The Dark Knight</option> <option>Spiderman 3</option> <option>X-Men</option> </datalist>
  • 49. <input name=&quot;custname&quot; required> <script> form.checkValidity(); </script> Form Validation By adding ‘required’ attribute you can take advantage of validity checking without custom JavaScript.
  • 50. <html manifest=”cache.manifest”> Offline Applications Offline Applications using manifest Run a web application in offline mode, disconnected from Internet provide a cache.manifest file: Of course your app will still have failures if it tries to pull live data from the Internet uses MIME type: text/cache-manifest CACHE MANIFEST clock.html clock.css clock.js
  • 51. window.history.back(); window.history.forward(); window.history.go(2); window.history.length; window.history.pushState(data, title, url); window.history.replaceState(data, title, url); JavaScript API for moving through browser history History API
  • 52. navigator. geolocation . getCurrentPosition( function(position) { // display position } ); Geolocation Build location-aware apps without access to native mobile apis
  • 53. Local Storage A set of APIs to manipulate client-side databases using SQL Web SQL Apple Google Opera IndexedDB has replaced Web SQL
  • 54. Web Sockets Opens a persistent connection to the server Can be used for server to browser push Restricted communication to origin server Eliminates need to poll for data var ws = new WebSocket(&quot;ws://friendfeed.com/websocket&quot;); ws.onopen = function() { ws.send(&quot;This is a message from the browser to the server&quot;); }; ws.onmessage = function(event) { alert(&quot;The server sent a message: &quot; + event.data); };
  • 55. - Provide “threads” for JavaScript execution - Don’t have access to DOM or page. - Have to communicate through postMessage API Web Workers
  • 56. W3C says we shouldn’t use HTML5!!!!
  • 57. Create a solid cross-browser base to start from & use HTML5 to enhance sites Fallbacks can be used to degrade gracefully when necessary <video controls width=&quot;500&quot;> <source src=&quot;video.ogg&quot; /> <source src=&quot;video.mp4&quot; /> <embed src=&quot;http://blip.tv/play/gcMV&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;1024&quot; height=&quot;798&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot;></embed> </video> If HTML5 video is not supported, flash video will load Progressive Enhancement
  • 58. Support for older browsers Use polyfills to fallback gracefully or mimic functionality HTML5Shim Modernizr Explorercanvas Socket.IO Big List of Polyfills: http://bit.ly/b5HV1x Polyfills
  • 59. I’m asking you, the developer, to look at the technology that’s available to you and chose the solution that suits your problem best. If that happens to be an HTML5 technology, or a non-HTML5 API, or even Flash, you’ve chosen the individual specific technology, not a f**king buzzword. Remy Sharp, 10/7/10 http://bit.ly/cQUGdM
  • 60. http://html5.timothyfisher.com http://diveintohtml.com http://html5doctor.com/ http://html5demos.com http://caniuse.com http://html5rocks.com Resources
  • 61. Introducing HTML5 (Bruce Lawson & Remy Sharp) HTML5: Up and Running (Mark Pilgrim) Books

Editor's Notes

  • #8: The use of “HTML5” as a catchall by media &amp; marketing is confusing development professionals.
  • #9: Cats are part of HTML5. :P
  • #10: Babies are part of HTML5. :P
  • #11: Staplers are part of HTML5. :P
  • #12: You have to laugh at how the media and marketing groups will put a spin on something.
  • #13: It’s a real issue because developers are getting confused about where HTML5 begins and ends. We need to better educate them.
  • #15: Bruce Lawson took this image showing where certain things fit.
  • #23: The use of “HTML5” as a catchall by media &amp; marketing is confusing development professionals.
  • #42: The use of “HTML5” as a catchall by media &amp; marketing is confusing development professionals.
  • #57: Common question which has no easy answer.
  • #59: How developers can start using HTML5 now
  • #60: Common question which has no easy answer.