HTML5

Co to je, jak vzniká, co přináší a čím se liší od předchozí verze?

Obsah

  1. Co je HTML5
  2. Vývoj standardu
  3. Přechod z HTML4
  4. Osm technologických tříd HTML5

Co je HTML5

Vývoj standardu

Standardizační proces

Ian Hickson

Co zmizelo

Co se změnilo

Co nezmizelo

Osm technologických tříd

Definuje w3c logo pro snazší kategorizaci

  1. Sémantika
  2. Offline & Storage
  3. Device access
  4. Connectivity
  5. Performance and integration
  6. Multimedia
  7. 3D, Graphics, Effects
  8. CSS3

Sémantika

Microdata

<!-- RDFa -->
<p xmlns:v="http://rdf.data-vocabulary.org/#" typeof="v:Person"> 
	<span property="v:name">Ondřej Žára</span> 
	<span property="v:affiliation">Seznam.cz</span> 
	<span property="v:title">Webmaster</span> 
</p>

<!-- Microformats -->
<p class="vcard"> 
	<span class="fn">Ondřej Žára</span> 
	<span class="org">Seznam.cz</span> 
	<span class="title">Webmaster</span> 
</p>

<!-- Microdata -->
<p itemscope itemtype="http://data-vocabulary.org/Person"> 
	<span itemprop="name">Ondřej Žára</span> 
	<span itemprop="affiliation">Seznam.cz</span> 
	<span itemprop="role">Webmaster</span> 
</p>

Offline & Storage

Storage – Web Storage

localStorage.setItem("name", "Jan");
localStorage.setItem("age", 30);
localStorage.length;                              /* 2 */
localStorage.getItem("age") == localStorage.age;  /* "30" */
localStorage.key(0);                              /* "name" */
localStorage.removeItem("name");
localStorage.clear();

Device access

Geolocation

var callback = function(position) {
	alert(position.coords.longitude); /* zeměpisná délka */
	alert(position.coords.latitude);  /* zeměpisná šířka */
};
navigator.geolocation.getCurrentPosition(callback);

Connectivity

Performance and integration

Performance – ukázka Web Workers

Ukázka výpočetního vlákna

Rodič:

var w = new Worker("factorial.js");
w.onmessage = function(e) { alert(e.data); }       /* až přijde zpráva od vlákna */
w.postMessage(10);                                 /* poslat zprávu vláknu */

factorial.js:

var onmessage = function(e) {                      /* až přijde zpráva od rodiče  */
    var result = 1, current = parseInt(e.data);
    while (current) { result *= current--; }
    postMessage(result);                           /* dáme vědět zpátky */
}

Multimédia

HTML Audio a Video

<video controls poster="image.png">
	<source src="video-small.mp4" 
		type="video/mp4; codecs='avc1.42E01E, mp4a.40.2'" 
		media="screen and (max-width:500px)" 
	/>
	<source src="video.mp4" type="video/mp4; codecs='avc1.42E01E, mp4a.40.2'" />
	<source src="video.ogv" type="video/ogg; codecs='theora, vorbis'"/>
	<source src="video.webm" type="video/webm; codecs='vp8, vorbis'" />
	<!-- embed flash jako fallback -->
</video>
var a = new Audio("song.mp3");
a.canPlayType("audio/mpeg"); /* "", "maybe", "probably" */
a.play();

Graphics

CSS 3

Prostor pro otázky