HTML5 for PHP Developers - DPC11

Post on 12-May-2015

4.487 views 2 download

Tags:

Transcript of HTML5 for PHP Developers - DPC11

© 2011 Mayflower GmbH

Thorsten Rinne I 20th May 2011

HTML5 for PHP Developers

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Team LeadScrum MasterHead of Open Source Labs

@ThorstenRinne2

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 3

Who are you?

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

I won‘t talk about <video> and <audio>

4

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

And I don‘t speak about ...

5

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Flash is dead.But don‘t tell Adobe.

6

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Who‘s already using ...

7

... ?

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

HTML5 in one sentence?

8

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

„HTML5 is about moving from

documents to applications and from hacks to solutions.“

9

Chris Heilmann auf Twitter

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

HTML5 for Developers?

10

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

HTML5 ~= HTML + CSS + JS

11

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

1999:PHP 3.0 - MySQL 3.22

Apache 1.3

12

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 13

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

1999:XMLHttpRequest Object

14

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

As time goes by ...

15

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 16

since 5.0 (1999)

since 1.0 (2004)

since 1.2 (2004)

since 7.6 (2004)

2005:Ajax: A New Approach to

Web ApplicationsHTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 17

Blog entry by Jesse James Garret

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 18

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Google Suggest

Google Mail

Google Maps

19

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 20

2006:Comet

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 21

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 22

Push Ajax

Push

Helgi‘sbirthday

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Okay, what‘s happening?

23

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Contentvs.

Context24

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Facebook is an application!

25

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Pagevs.

Stream26

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 27

Twitter is an application!

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Applications?

28

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Apps!

29

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 30

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 31

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

online == offline32

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Is this the new web?

33

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

The future is a web app!

34

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

The mobile browser is almost identical to the

desktop browser.

35

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

The mobile browser has short release cycles.

36

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

The mobile browser is a „cross platform

realtime runtime“.

37

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

But what about HTML5?And what about PHP?

38

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Requests

Events39

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

2000: PHP chat style polling

40

Client Server

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

2000: PHP chat style polling

41

Client Server

Hey, wazzup?

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

2000: PHP chat style polling

42

Client Server

Um, nothing actually...Hey, wazzup?

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

2000: PHP chat style polling

43

Client Server

Hey, wazzup?

1 sec

Um, nothing actually...

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

2000: PHP chat style polling

44

Client Server

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

2000: PHP chat style polling

45

Client Server

Hey, wazzup?

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

2000: PHP chat style polling

46

Client Server

Hey, wazzup?Um, nothing actually...

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

2000: PHP chat style polling

47

Client Server

Hey, wazzup?

1 sec

Um, nothing actually...

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

2000: PHP chat style polling

48

Client Server

WTF???

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

1 user = 1 req / secCPU #FAIL

49

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

2006: Comet style long poll

50

Client Server

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

2006: Comet style long poll

51

Client Server

Hey, wazzup?

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

2006: Comet style long poll

52

Client Server

Um, nothing actually...

1 sec

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

2006: Comet style long poll

53

Client Server

Well ...

1 sec

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

2006: Comet style long poll

54

Client Server

Wait ...

1 sec

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

2006: Comet style long poll

55

Client Server

Uh, there is something!

1 sec

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

2006: Comet style long poll

56

Client Server

No, nothing!

1 sec

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

2006: Comet style long poll

57

Client Server

WTF???

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

1 user = 1 apache childMEMORY #FAIL

58

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

We have a problem.59

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 60

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

We need help.

61

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 62

MEMORY: WINCPU: 1/2 WIN

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 63

Client

Client

Client

PHP Server

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 64

Client

Client

Client

PHP Server

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

We know PHPWe know node.js

65

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

What about the client?

66

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

WebSockets

67

if ("WebSocket" in window) { var ws = new WebSocket("ws://example.com/service"); ws.onopen = function() { // WebSocket is connected. // You can send data by send() method. ws.send("message to send");

// .... }; ws.onmessage = function (evt) { var received_msg = evt.data; }; ws.onclose = function() { // WebSocket is closed }; } else { // the browser doesn't support WebSockets. }

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 68

GET /demo HTTP/1.1Upgrade: WebSocketConnection: UpgradeHost: example.comOrigin: http://example.comSec-WebSocket-Key1: 4 @1 46546xW%0l 1 5Sec-WebSocket-Key2: 12998 5 Y3 1 .P00 ^n:ds[4U

HTTP/1.1 101 WebSocket Protocol HandshakeUpgrade: WebSocketConnection: UpgradeSec-WebSocket-Origin: http://example.comSec-WebSocket-Location: ws://example.com/demoSec-WebSocket-Protocol: sample 8jKS'y:G*Co,Wxa-

Client

Server

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

More logic will move to the client... the browser.

69

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

WebWorker

70

var myWorker = new Worker('backgroundtask.js');

myWorker.onmessage = function(event) { alert(event.data); };

self.onmessage = function(event) { // Do some heavy work self.postMessage('Hello, Amsterdam'); }

backgroundtask.js

main.js

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

WebMessaging

71

<form> <input type="text" name="msg" value="My message" id="msg"> <input type="submit"> <h2>Ziel iFrame:</h2> <iframe id="iframe" src="postmessage.html"></iframe> </form> <script> var win = document.getElementById("iframe").contentWindow; addEvent(

document.getElementsByTagName('form')[0], 'submit', function (e) {

if (e.preventDefault) e.preventDefault(); win.postMessage(document.getElementById("msg").value, "http://www.phpconference.nl"); e.returnValue = false; return false; }); </script>

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 72

Offline application cache <html manifest="cache.manifest"> <script> window.applicationCache.addEventListener( 'checking', updateCacheStatus, false) </script>

index.html

CACHE MANIFEST

CACHE: /html5/demo/index.html /html5/demo/css/style.css /html5/demo/images/background.png /html5/demo/js/application.js

cache.manifest

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 73

Web Storage‣„short living“ data‣sessionStorage object‣will be deleted by closing the browser‣„long living“ data‣localStorage object‣won‘t be deleted after closing the browser

Safari/Chrome Firefox IE Opera

2 MB 5 MB ~ 200MB 5 MB 4 MB

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 74

Web Storage <p>This page was requested <b> <script> if (!sessionStorage.pageCounter) { sessionStorage.setItem('pageCounter',0); } sessionStorage.setItem('pageCounter', parseInt(sessionStorage.pageCounter)+1); document.write(sessionStorage.pageCounter); </script> </b> times.</p> <p> <input value="sessionStorage leeren" type="button" onClick="sessionStorage.clear();location.reload(true);"> <input value="Seite laden" type="button" onClick="location.reload(true);"> </p>

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 75

2007: iPhone web apps should be only based on

HTML5,CSS3, JavaScript,

offline application cache and

web storage.

Work on specs have stopped in late 2010. Don‘t use it.

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Web SQL Database

76

var db = openDatabase('myDatabase', '1.0', 'My first Web SQL database', 2 * 1024 * 1024);

db.transaction(function (tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS conferences (id unique, text)'); tx.executeSql('INSERT INTO conferences (id, text) VALUES (1, "Dutch PHP Conference")'); });

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Geolocation

77

if (navigator.geolocation) { navigator.geolocation.getCurrentPosition( function(position) { var lat = position.coords.latitude; var lng = position.coords.longitude; var options = { position: new google.maps.LatLng(lat, lng) } var marker = new google.maps.Marker(options); marker.setMap(map); }); }

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Drag and Drop API

78

<li draggable="true" id="pic" ondragstart="drag(this, event)"> <span>foobar.png</span></li>

<div id="trash" ondrop="drop(this, event)" ondropenter="return false" ondropover="return false"></div>

function drag(target, e) { e.dataTransfer.setData("Text", target.id); }

function drop(target, e) { var id = e.dataTransfer.getData("Text"); target.appendChild(document.getElementById(id); e.preventDefault(); }

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

FileReader API (I)

79

var reader = new FileReader();

reader.onload = function(e) { var bin = e.target.result; // bin is a binary string };

reader.readAsBinaryString(file);

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

FileReader API (II)

80

var xhr = new XMLHttpRequest();

xhr.open("POST", "upload.php"); xhr.overrideMimeType("text/plain; charset=x-user-defined-binary"); xhr.sendAsBinary();

xhr.upload.addEventListener("progress", function(e) { if (e.lengthComputable) { var percentage = Math.round((e.loaded * 100) / e.total); // do something } }, false);

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

This was just the JavaScript part of HTML5.

81

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

What‘s left for us PHP Developers?

82

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

HTML5 is part of an application framework.

83

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

The LAMP stack gets a bust of Janus.

84

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 85

Realtimecomponent

Webcomponent

HTML5 / JS PHP / MySQL

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

PHP Developer have to learn JavaScript as well!

86

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Modern PHP applications use both techniques:

87

JavaScript50%

PHP50%

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 88

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

<!DOCTYPE html>

89

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Page structure tags

90

<header><hgroup><nav>

<article><footer>

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Article structure tags

91

<section><aside>

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

New semantic tags

92

<time><details><figure>

<figcaption><mark>

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

New <link> relations

93

<link rel="alternate" type="application/atom+xml" title="My Weblog feed" href="http://www.phpconference.nl/feed/"> <link rel="search" type="application/opensearchdescription+xml" title="My Weblog search" href="http://www.phpconference.nl/opensearch.xml"> <link rel="icon" href="/favicon.ico">

<link rel="pingback" href="http://www.phpconference.nl/xmlrpc.php"> <link rel="prefetch" href="http://www.phpconference.nl/main.php"> <link rel="archives" href="http://www.phpconference.nl/archive/"> <link rel="external" href="http://www.php.net"> <link rel="license" href="http://www.gnu.org/licenses/gpl.html"> <link rel="nofollow" href="http://www.ruby-lang.org">

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

WebForms

94

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

WebForms attributes (I)

95

<input type="text" placeholder="Mayflower GmbH">

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

WebForms attributes (II)

96

<input type="text" maxlength="256" name="q" autofocus>

<input type="text" maxlength="256" name="q" required="true">

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

WebForms attributes (III)

97

<input type="tel" name="phonenumber">

<input type="url" name="url">

<input type="email" name="emailaddress">

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

WebForms attributes (IV)

98

<input type="number" min="0" max="10" step="2" value="6">

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

WebForms attributes (V)

99

<input type="range" min="0" max="10" step="2" value="6">

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

HTML5 Speech Input

100

<input type="text" x-webit-speech>

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Date Picker

101

<input type="date"> <input type="month"> <input type="week"> <input type="time"> <input type="datetime">

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Color Picker

102

<input type="color">

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

contenteditable

103

<p contenteditable="true">Hello, Amsterdam!</p>

You can save the content to‣ sessionStorage‣ localStorage ‣ or with PHP using XMLHttpRequest

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Canvas

104

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Canvas

105

<canvas id="rss" width="24" height="24"></canvas>

<script type="text/javascript"> function draw() { var canvas = document.getElementById('rss'); if (canvas.getContext){ var ctx = canvas.getContext('2d'); } } </script>

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Canvas

106

// The triangle ctx.fillStyle = 'rgb(236,138,68)'; ctx.fillRect(0,0,24,24);

// The lines and the dot ctx.strokeStyle = "#ffffff"; ctx.lineWidth = 3; ctx.beginPath(); ctx.arc(4,21,15,Math.PI*3/2,0,false); ctx.moveTo(4,11); ctx.arc(4,21,10,Math.PI*3/2,0,false); ctx.moveTo(8,18); ctx.arc(7,18,1,Math.PI*2,0,false); ctx.stroke();

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Canvas

107

// The gradient var gradient = ctx.createLinearGradient(0,0,24,24); gradient.addColorStop(0, 'rgb(236,138,68)'); gradient.addColorStop(0.5, 'rgb(252,158,60)'); gradient.addColorStop(1, 'rgb(220,98,44)'); ctx.fillStyle = gradient;

ctx.beginPath(); ctx.moveTo(0,5); ctx.quadraticCurveTo(0,0,5,0); ctx.lineTo(19,0); ctx.quadraticCurveTo(24,0,24,5); ctx.lineTo(24,19); ctx.quadraticCurveTo(24,24,19,24); ctx.lineTo(5,24); ctx.quadraticCurveTo(0,24,0,19); ctx.fill();

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Canvas

108

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

And what about CSS3?

109

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

New selectors

110

.row:nth-child(even) { background: #cccccc; } .row:nth-child(odd) { background: #ffffff; }

row 1

row 2

row 3

row 4

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Web Fonts

111

@font-face { font-family: 'Papyrus'; src: url(Papyrus.otf); } header { font-family: 'Papyrus'; }

Ik zal handhaven

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

More new CSS3 features...

112

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 113

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Multi-column layouts

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Opacity

114

OpacityOpacityOpacityOpacity

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 115

HSL / HSLA colours

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 116

Finally rounded corners! :-)

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Gradients

117

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Shadows118

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Shadows119

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Transitions and animations

120

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Great.But can I use HTML5 today?

121

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

HTML5 in Browsern

122

33 %

52 %57 %

64 % 65 %

73 %

IE9 Mobile Safari Safari 5 Firefox 4 Opera 11.1 Chrome 11

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

HTML5 support in the year 2011

123

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 124

Cross

Document

Messaging

content

editableNew tags <audio> <video>

IE 9 yes yes yes yes yes

FF 4 yes yes yes yes yes

Chrome 11 yes yes yes yes yes

Safari 5 yes yes yes yes yes

Opera 11.10 yes yes yes yes yes

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 125

Simple

<canvas>

support

Texts in

<canvas>Drag and Drop

Offline Application

Cache

HTML5

WebForms

IE 9 yes no yes no no

FF 4 yes yes yes yes yes

Chrome 11 yes yes yes yes yes

Safari 5 yes yes yes yes yes

Opera 11.10 yes yes no yes yes

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

But...

126

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Browser statistics 2011

127

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

What‘s safe to use today?

128

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

contenteditablepostMessage

Web Storage (IE 8+)New semantic tags

129

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Any HTML5 helpers?

130

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 131

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I 132

HTML5 for PHP Developer I Mayflower GmbH I 20th May 2011 I

Questions?

133

Thank you very much!

© 2011 Mayflower GmbH

Contact Thorsten Rinnethorsten.rinne@mayflower.de+49 89 242054-31@ThorstenRinne

Mayflower GmbHMannhardtstr. 680538 MünchenGermany

Please rate me at http://joind.in/3239