Start presentation
Představení HTML5
22. 11. 2008, Junior Internet, Praha
Web se vyvíjí
- Sdílení dokumentů
- Webové stránky
- Webové aplikace, RIA
Co je HTML5?
- Specifikace vzniká od r. 2004
- Výrobci prohlížečů (WHATWG) a W3C
- Nástupce stávajících HTML a XHTML specifikací
Co HTML5 obsahuje?
- Novinky (zej. pro web. aplikace)
- Standardizace zavedených proprietárních řešení
- Zvýšení interoperability mezi prohlížeči
- Příklady standardizace proprietárních řešení:
innerHTML, contenteditable, designMode, getElementsByClassName, drag & drop
- Specifikace reálného HTML, HTML z ulice (HTML as she spoke)
Rozšíření formulářů - WebForms2
<input type="number">
<input type="email">
<input type="url">
<input type="datetime">
Rozšíření formulářů - pokračování
- validace
- pseudotřídy :valid, :invalid
- upload více souborů
- předvyplnění formulářů
Sémantické značky
- <header>, <footer>
- <nav>, <aside>
- <section>, <article>, <dialog>
Bezpečný iframe
- Možné hodnoty: allow-same-origin, allow-forms, a allow-scripts
- Zakazuje pluginy, opuštění kontextu (vyvoření oken, změna top URL apod.)
- Další variantou je seamless - dědičný iframe
Web Workers
- "Vlákna" na pozadí
- Pro delší úlohy
- Komunikují zprávami
Komunikace mezi okny
- Implementováno ve Firefoxu, nightly WebKitu, IE8
- Posílání: window.postMessage()
- Příjem: onmessage=""
frame1.postMessage('data', 'http://www.example.com/');
- Komunikace mezi aplikacemi
- Ve starších prohlížečích emulovatelné
- ONLINE: http://achau.appspot.com/demo/html5/crossdoc/index.html
Offline webové aplikace
- Platforma pro desktopové a mobilní aplikace
- Manifest se seznamem offline souborů
<html manifest="Aplikace.manifest">
Data Storage
- Kde cookies nestačí
- localStorare, sessionStorage (MB dat)
- SQL storage (až GB)
- ONLINE: http://a.met.cz/prowas/html5-november/src/storage.html
- ONLINE: http://webkit.org/misc/DatabaseExample.html
localStorage + sessionStorage
- Implementováno ve FF2, nightly WebKity a IE8
localStorage.setItem('key', data);
localStorage.getItem('key');
localStorage.setItem('key', data);
globalStorage["www.example.cz"].setItem('key', data);
AJAX s historií
<body
onhashchange="..."
>
- Alternativou v HTML5 je history.pushState() a PopStateEvent
Audio, video
- <audio>, <video>
- Hledá se společný formát
- Nabízí jednotné rozhraní
Ukázka videa 1
<embed type="application/x-shockwave-flash"
src="/static/cz/shared/app/MediaCenter.swf"
quality="high"
wmode="transparent"
allowfullscreen="true"
flashvars="media_id=431380&bit=1225473403624233743826
&color=#000000&autostart=true&config_file_append="
width="440"
height="288">
Ukázka videa 2
<!--[if !IE]>-->
<object type="application/x-ms-wmp"
width="320" height="305">
<param name="src" value="/services/playlist.asx">
<param name="autostart" value="1" id="autoStart">
<!--<![endif]-->
<param name="mute" value="0">
<param name="autostart" value="1" id="autoStart2">
<param name="autosize" value="0">
<param name="stretchtofit" value="0">
<param name="uimode" value="full">
</object>
Nešlo by to lépe?
Šlo
<video src="soubor.ogg"></video>
Canvas
- Vykreslování 2D grafiky
- Modifikaci obrázků, fotek
- Interaktivní hry, grafy
- Rozšíření možností prohlížečů
Značka canvas
<canvas></canvas>
Fallback content
<canvas>
<img href="obrazek.png" alt="...desc...">
</canvas>
Context 2d
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
context.fillRect(10, 10, 20, 20);
Implementován v :
- Safari
- Opera
- Firefox
- Google Chrome
- částečná emulace v IE
Metody 2d
- moveTo
- lineTo
- quadraticCurveTo
- bezierCurveTo
- arcTo
- rect
- fillRect
Metody 2d - pokračování
- fill
- createLinearGradient
- createRadialGradient
- drawImage
Metody 2d - pokračování 2
- scale
- rotate
- translate
- transform
Excanvas - emulace pro IE (VML)
Ukázky canvasu
- ONLINE: http://box2d-js.sourceforge.net/
- ONLINE: http://www.abrahamjoffe.com.au/ben/canvascape/
- ONLINE: http://www.nihilogic.dk/labs/wolf/
- ONLINE: http://antisocial.demozoo.org/
- ONLINE: http://www.nihilogic.dk/labs/prettyfloat/example.htm
- ONLINE: http://a.met.cz/prowas/html5-november/src/canvas/graf.html
Canvas vs Flash?
- Vývojář webový vs specializovaný
- Aplikace neinteraktivní vs interaktivní
Gears
Plugin od Google
inklinuje k HTML5
Gears implementuje
- SQL storage
- Pracovní vlákna
- Offline aplikace
5 > 4
5 > 3
5 > 2
5 > 1
Otázky?