úterý 22. prosince 2009

Opera 10.5 přinese lokální úložiště z HTML5

Dnes byla představena preview verze Opery 10.5. Obsahuje řadu novinek, např. dlouho očekávaný JS engine Carakan. Z pohledu HTML5 přináší jednu důležitou novinku a tou je podpora lokálních úložišť. Přesněji řečeno všech typů lokálních datových úložišť (nástupce cookies), definovaných v HTML5.

Web Storage

Web Storage zahrnuje localStorage a sessionStorage a umožňuje ukládat data v jednoduché podobě klíč - hodnota. Implementace najdeme již prakticky ve všech prohlížečích. Opera byla posledním prohlížečem, na který se ještě čekalo. Odhaduji, že cca do dvou let by se toto úložiště mohlo začít bez problému používat i pro široké nasazení. V tuto chvíli je lze bezpečně používat pouze s pomocí emulačních triků, které zajistí uložení dat v prohlížečích dosud nepodporujících Web Storage.

Web SQL Database (SQL5)

Webové úložiště postavené na SQL (někdy přezdívané SQL5) je složitějším úložištěm, které obsahuje jednoduchou SQL databázi. Zatím bylo implementováno pouze ve WebKitu (Safari, iPhone, Chrome) a v Google Gears. Opera tak přináší jeho v pořadí třetí implementaci. Na použití tohoto úložiště na webu si pravděpodobně počkáme ještě řadu let.

Jeho implementace v Opeře tak bude zatím zajímavá spíše pro tvůrce aplikací (widgetů) postavených na platformě Opera. Až se podpora dostane i do mobilní verze Opery, získají mobilní widgety pěknou databázi.

pátek 11. prosince 2009

První verze akcelerovaného 3D v prohlížečích je na světě

Pod hlavičkou Khronos Group byl vydán první draft specifikace WebGL. K této aktivitě se hlásí Apple, Google, Mozilla i Opera (absence Microsoftu se u podobných aktivit již stala pravidlem).

Práce začala loni na jaře, kdy se výrobci sice již shodli, že akcelerované 3D na webu bude časem nutností, ale nebyli se schopni dohodnout, jak má toto rozhraní vypadat a začali si (téměř každý) vyvíjet své vlastní. Právě včas zasáhl Khronos Group, který přinesl nejen neutrální půdu pro přípravu nového standardu, ale také potřebné know-how (pod jeho patronátem se vyvíjí např. OpenGL). Zřejmě se jednalo o dobrou volbu, protože se výrobci prohlížečů (ti jmenovaní) přidali.

Chcete si to vyzkoušet? Máme implementace

Současně s první pracovní verzí specifikace jsou k dispozici i její první implementace. (Také začínáte mít pocit, že v Khronos Group to šlape poněkud lépe než u W3C?) Jedná se zatím o experimentální implementace dostupné jen pro testování. Jednu najdete v nočních buildech Firefoxu (návod, jak ji zapnout), další najdete v Chromiu a nočních verzích WebKitu.

Pro vyzkoušení nových 3D možností si zkuste dema nebo stránku x3dom.

Já tleskám a jdu si to také zkusit.

P.S.: Ještě k Microsoftu. Komunikace na Twitteru mezi Arunem (Mozilla) a Chrisem Wilsonem (Microsoft): upozornění, reakce, reakce, reakce.

Firefox 3.6 zlepší práci se soubory ve formulářích

Ve Firefoxu 3.6 se dočkáme dvou novinek týkajících se práce se soubory. Tou první je podpora uploadu více souborů najednou z jednoho formulářového pole po vzoru specifikace HTML5 (dříve WebForms2).

Zápis vypadá jednoduše:

<input type="file" multiple="">

v HTML variantě jej můžete zkrátit i na:

<input type=file multiple>

Pomocí JavaScriptu můžete ověřit, kolik souborů uživatel vybral nebo je (resp. jejich názvy) v cyklu projít (kolekce input.files a vlastnost input.files.length
).

Více: ukázka, specifikace.

Sáhněte si na soubor

Tou druhou novinkou je možnost přistupovat přímo z JavaScriptu k obsahu souborů, které uživatel vybral k uploadu pomocí klasického <input type="file">. Dosud bylo totiž nutné takové soubory nahrát na server, z něj získat zpět a teprve pak s nimi šlo dále pracovat. Alternativou bylo použití pluginů, které umožňovaly přímou práci se soubory.

Z JavaScriptu bude pomocí nového API možné zjistit nejen název takového souboru, jeho typ a velikost, ale také přistupovat k jeho obsahu a to třemi asynchronními způsoby (dnes už je takový trend dělat všechny náročnější operace asynchronně, aby nedocházelo k zamrzání stránky v prohlížeči) :
  • readAsBinaryString
  • readAsText
  • readAsDataURL
Zvolená metoda se váže na typ obsahu a co s ním chcete dělat. U textových souborů použijete readAsText. Pokud chcete pracovat s obrázky, ale nemáte v úmyslu je měnit, zvolíte readAsDataURL (následně do vlastnosti můžete img.src nastavit přímo tuto hodnotu a obrázek se zobrazí) atd.

Kompletní specifikace (poměrně čerstvá, první návrh přišel před pár týdny právě od Mozilly) počítá i s výše zmíněným přepínačem multiple (bude tedy možné např. označit všechny fotografie v adresáři a následně s nimi v JavaScriptu pracovat).

Firefox 3.6 zatím neimplementoval specifikaci celou, ale dost na to, aby si ji zájemci mohli vyzkoušet (stahujte Firefox 3.6 beta 4).

Více: video s demem, ukázka, specifikace.

Pozn.: Firefox 3.6 těch novinek přinese víc, ale pro účely tohoto příspěvku nejsou podstatné.

Pozn. 2: Specifikace je nová a zatím jsem nenašel reakce dalších prohlížečů, zda ji budou chtít podporovat nebo ne. Uvidíme.