html5 - the 2012 of the web

77
HTML5 - The 2012 of the Web

Upload: robert-nyman

Post on 29-Aug-2014

9.888 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: HTML5 - The 2012 of the Web

HTML5 -

The 2012 of the Web

Page 3: HTML5 - The 2012 of the Web

Mozilla is a global non-profit dedicated to putting you in control of your online experience and shaping the future of the Web for the public good

Page 4: HTML5 - The 2012 of the Web
Page 5: HTML5 - The 2012 of the Web

2012

Page 6: HTML5 - The 2012 of the Web

Mesoamerican Long Count calendar

Page 7: HTML5 - The 2012 of the Web

"The beginning of a new era"

Page 8: HTML5 - The 2012 of the Web

HTML4 * 1000

HTML 4000

Page 10: HTML5 - The 2012 of the Web

What is HTML5?

Page 12: HTML5 - The 2012 of the Web

HTML5 semantics

Page 13: HTML5 - The 2012 of the Web

<!DOCTYPE html>

Page 15: HTML5 - The 2012 of the Web

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Page 16: HTML5 - The 2012 of the Web

<meta charset="utf-8">

Page 19: HTML5 - The 2012 of the Web

<input type="color">

<input type="date">

<input type="datetime">

<input type="datetime-local">

<input type="email">

<input type="month">

<input type="number">

<input type="range">

<input type="search" results="5" autosave="saved-searches">

<input type="tel">

<input type="time">

<input type="url">

<input type="week">

New form types

Page 20: HTML5 - The 2012 of the Web
Page 21: HTML5 - The 2012 of the Web

<input type="text" autocomplete="off">

<input type="text" autofocus>

<input type="submit" formaction="http://example.org/save" value="Save">

<input type="submit" formenctype="application/x-www-form-urlencoded" value="Save with enctype">

<input type="submit" formmethod="POST" value="Send as POST">

<input type="submit" formnovalidate value="Don't validate">

<input type="submit" formtarget="_blank" value="Post to new tab/window">

New form attributes

Page 22: HTML5 - The 2012 of the Web

<input type="text" list="data-list">

<input type="range" max="95">

<input type="range" min="2">

<input type="file" multiple>

<input type="text" readonly>

<input type="text" required>

<input type="text" pattern="[A-Z]*">

<input type="text" placeholder="E.g. Robocop">

<input type="text" spellcheck="true">

<input type="number" step="5">

Page 23: HTML5 - The 2012 of the Web

<input type="text" list="data-list">

<datalist id="data-list"> <option value="Hugo Reyes"> <option value="Jack Shephard"> <option value="James 'Sawyer' Ford"> <option value="John Locke"> <option value="Sayid Jarrah"></datalist>

New form elements

Page 24: HTML5 - The 2012 of the Web

<keygen></keygen>

<meter min="0" max="10" value="7"></meter>

<input type="range" id="range"><output for="range" id="output"></output>

<progress max="100" value="70">70%</progress>

Page 25: HTML5 - The 2012 of the Web

<input type="range" id="range"><output for="range" id="output"></output>

<script> (function () { var theForm = document.getElementById("the-form"); if ("oninput" in theForm) { theForm.addEventListener("input", function () { output.value = range.value; }, false); } })();</script>

Page 30: HTML5 - The 2012 of the Web

sessionStorage.setItem("Charming", "Anthony Weiner");console.log(sessionStorage.getItem("Charming"));

Page 31: HTML5 - The 2012 of the Web

localStorage.setItem("Occupation", "Politician");

Page 32: HTML5 - The 2012 of the Web

var anthonyWeiner = { "Interest" : "Photography", "Social" : "Twitter"};

localStorage.setItem("anthonyWeiner", JSON.stringify(anthonyWeiner));

console.log(typeof JSON.parse(localStorage.getItem("anthonyWeiner")));

Page 33: HTML5 - The 2012 of the Web

IndexedDBWeb SQL

Page 35: HTML5 - The 2012 of the Web

window.history.pushState(state, title, url);

Page 36: HTML5 - The 2012 of the Web

var url = "http://robertnyman.com",title = "My blog",state = { address : url};

window.history.pushState(state, title, url);

Page 39: HTML5 - The 2012 of the Web

What came before WebSockets?

Cross Frame Communication

HTTP Polling

LiveConnectForever Frame

AJAX

HTTP Long-Polling and XHR Streaming

Page 40: HTML5 - The 2012 of the Web

var ws = new WebSocket("ws://robertnyman.com/wsmagic");

// Send dataws.send("Some data");

// Close the connectionws.close();

Page 41: HTML5 - The 2012 of the Web

var ws = new WebSocket("ws://robertnyman.com/wsmagic");

// When connection is openedws.onopen = function () { console.log("Connection opened!");};

// When you receive a messagews.onmessage = function (evt) { console.log(evt.data);};

// When you close the connectionws.onclose = function () { console.log("Connection closed");};

// When an error occurred ws.onerror = function () { console.log("An error occurred");};

Page 43: HTML5 - The 2012 of the Web
Page 45: HTML5 - The 2012 of the Web

<video controls src="nasa.webm"></video>

Page 46: HTML5 - The 2012 of the Web

<video controls> <source src="nasa.mp4"></source> <source src="nasa.webm"></source> <p>Hello, older web browser</p></video>

Page 48: HTML5 - The 2012 of the Web

<video src="http://vid.ly/4w2g7d?content=video" controls></video>

Page 50: HTML5 - The 2012 of the Web
Page 55: HTML5 - The 2012 of the Web

<canvas id="my-canvas" width="500" height="500"> I am canvas</canvas>

Page 56: HTML5 - The 2012 of the Web

var canvas = document.getElementById("my-canvas"), context = canvas.getContext("2d");

context.fillStyle = "#f00";context.fillRect(0, 0, 100, 100);

context.clearRect(40, 40, 20, 20);

Page 65: HTML5 - The 2012 of the Web

Is it ready? Will HTML5 be around?

Why did I hug that bear?

Page 67: HTML5 - The 2012 of the Web

Is it ready?

Page 69: HTML5 - The 2012 of the Web

Is it ready?

http://canisue.com

Page 75: HTML5 - The 2012 of the Web

HTML5 -

The beauty of the Open Web