HTML5 - The 2012 of the Web - Adobe MAX

81
HTML5 - The 2012 of the Web

description

 

Transcript of HTML5 - The 2012 of the Web - Adobe MAX

Page 1: HTML5 - The 2012 of the Web - Adobe MAX

HTML5 -

The 2012 of the Web

Page 3: HTML5 - The 2012 of the Web - Adobe MAX
Page 4: HTML5 - The 2012 of the Web - Adobe MAX
Page 5: HTML5 - The 2012 of the Web - Adobe MAX

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 7: HTML5 - The 2012 of the Web - Adobe MAX

2012

Page 8: HTML5 - The 2012 of the Web - Adobe MAX

Mesoamerican Long Count calendar

Page 9: HTML5 - The 2012 of the Web - Adobe MAX

"The beginning of a new era"

Page 10: HTML5 - The 2012 of the Web - Adobe MAX

HTML4 * 1000

HTML 4000

Page 11: HTML5 - The 2012 of the Web - Adobe MAX

must die!!!Not rea

lly

Page 12: HTML5 - The 2012 of the Web - Adobe MAX

What is HTML5?

Page 16: HTML5 - The 2012 of the Web - Adobe MAX

HTML5 semantics

Page 17: HTML5 - The 2012 of the Web - Adobe MAX
Page 18: HTML5 - The 2012 of the Web - Adobe MAX

<!DOCTYPE html>

Page 20: HTML5 - The 2012 of the Web - Adobe MAX

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

Page 21: HTML5 - The 2012 of the Web - Adobe MAX

<meta charset="utf-8">

Page 22: HTML5 - The 2012 of the Web - Adobe MAX

<header>

<article>

<section>

<aside>

<footer>

<hgroup>

<nav>

<figure>

<figcaption>

Page 25: HTML5 - The 2012 of the Web - Adobe MAX

<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 26: HTML5 - The 2012 of the Web - Adobe MAX
Page 27: HTML5 - The 2012 of the Web - Adobe MAX

<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 28: HTML5 - The 2012 of the Web - Adobe MAX

<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 29: HTML5 - The 2012 of the Web - Adobe MAX

<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 30: HTML5 - The 2012 of the Web - Adobe MAX

<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 31: HTML5 - The 2012 of the Web - Adobe MAX

<input type="range" id="da-range"><output id="da-range-output"></output><script> (function () { var range = document.getElementById("da-range"), output = document.getElementById("da-range-output"); range.addEventListener("input", function () { output.value = this.value; }, false); })();</script>

Page 36: HTML5 - The 2012 of the Web - Adobe MAX

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

Page 37: HTML5 - The 2012 of the Web - Adobe MAX

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

Page 38: HTML5 - The 2012 of the Web - Adobe MAX

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

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

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

Page 39: HTML5 - The 2012 of the Web - Adobe MAX

IndexedDBWeb SQL

Page 41: HTML5 - The 2012 of the Web - Adobe MAX

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

Page 42: HTML5 - The 2012 of the Web - Adobe MAX

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

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

Page 45: HTML5 - The 2012 of the Web - Adobe MAX

What came before WebSockets?

Cross Frame Communication

HTTP Polling

LiveConnectForever Frame

AJAX

HTTP Long-Polling and XHR Streaming

Page 46: HTML5 - The 2012 of the Web - Adobe MAX

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

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

// Close the connectionws.close();

Page 47: HTML5 - The 2012 of the Web - Adobe MAX

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 49: HTML5 - The 2012 of the Web - Adobe MAX
Page 51: HTML5 - The 2012 of the Web - Adobe MAX

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

Page 52: HTML5 - The 2012 of the Web - Adobe MAX

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

Page 54: HTML5 - The 2012 of the Web - Adobe MAX

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

Page 56: HTML5 - The 2012 of the Web - Adobe MAX
Page 61: HTML5 - The 2012 of the Web - Adobe MAX

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

Page 62: HTML5 - The 2012 of the Web - Adobe MAX

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 71: HTML5 - The 2012 of the Web - Adobe MAX

Is it ready?

Will HTML5 be around?

Page 72: HTML5 - The 2012 of the Web - Adobe MAX

Is it ready?

Page 74: HTML5 - The 2012 of the Web - Adobe MAX

Is it ready?

http://caniuse.com/

Page 79: HTML5 - The 2012 of the Web - Adobe MAX

HTML5 -

The beauty of the Open Web