Webová API

Jirka Kosek

Poslední modifikace: $Date: 2015/12/11 10:48:08 $

Webová platforma

  • webové aplikace se používají v čím dál více oblastech

  • existuje snaha nahradit webovou platformou nativní aplikace

  • aby to bylo možné, musí mít aplikace skrze prohlížeč přístup k mnoha funkcím, které pro normální webové stránky a aplikace nejsou nutné

  • postupně vzniká velké množství rozhraní, které chybějící funkcionalitu postupně doplňují

  • před použitím je vždy nutné ověřit podporu např. pomocí http://caniuse.com/

Ukládání dat

Web Storage

  • dovoluje ukládání dat klíč/hodnota

  • existují dva druhy úložiště s různou délkou perzistence – localStorage a sessionStorage

  • pro každou doménu je velikost ukládaných dat omezena

  • obyklý limit pro uložená data je 5–25 MB

  • http://www.w3.org/TR/webstorage/

Indexed DB

  • pokročilejší úložiště typu klíč/hodnota

  • lze ukládat větší objemy dat (až GB)

  • jako hodnotu lze ukládat i objekty

  • podporuje transkace

  • pracuje asynchronně

  • pro rychlejší vyhledávání lze definovat indexy

  • http://www.w3.org/TR/IndexedDB/

Multimédia

Canvas

WebGL

Web Audio

Přístup k HW

Geolokace

  • jednoduché rozhraní pro získání aktuální polohy

  • uživatel s „prozrazením polohy“ musí souhlasit

  • polohu lze zjistit i méně přesně na základě IP adresy

  • http://www.w3.org/TR/geolocation-API/

Baterie

Akcelerometr

Gamepad API

Komunikace

Web Sockets

WebRTC

  • umožňuje přenos video v reálném čase bez použití pluginů

  • vhodné například pro implementaci video konferencí

  • http://www.webrtc.org/

Aplikace

Web Workers

  • umožňuje spuštění kódu na pozadí (obdoba vkláken)

  • s původní stránkou lze komunikovat zasíláním zpráv

  • http://www.w3.org/TR/workers/

Notifikace

Offline aplikace

  • samotné HTML5 přímo nabízí základní podporu – detekci online/offline stavu a appcache

  • AppCache – jednoduchý mechanismus, jak si prohlížeč může do vyrovnávací paměti uložit všechny zdroje nezbytné pro chod aplikací (HTML, CSS, JS)

  • AppCache je bohužel málo flexibilní pro reálné aplikace

Service Worker

  • kód běžící na pozadí a umožňující ovlivňovat všechny HTTP požadavky generované aplikací

  • pomocí tohoto nízkoúrovňového mechanismu lze implementovat například cachování aplikace – při prvním spuštění se vše uloží do Web Storage a v offline režimu čte Service Worker soubory odtud

  • odlišnou logiku chování aplikace v online/offline režimu lze zapouzdřit do Service Workeru

  • http://www.w3.org/TR/service-workers/