Internet Explorer 10: co bude umět nového?

Internet Explorer 10 má před sebou ještě dlouhý vývoj, už dnes ale můžete vyzkoušet některé novinky, se kterými si poradí jeho jádro. K dispozici je i katalog testů Test Drive.

Už se o něm nemluví s takovou zvědavostí jako před rokem, už to není revoluce, už je to prostě jen další verze – sic kulatá. Alespoň takový může mít leckdo pocit z Internet Exploreru 10, který se nedávno dočkal druhé testovací verze Platform Preview.

Po vzoru předchozí Devítky se nejedná o hotový program, ale spíše o velmi jednoduché okno a vábničku pro webové programátory, kteří si mohou vyzkoušet, co všechno bude umět nové jádro microsoftího prohlížeče. Zatím tedy netušíme, kam se opět posune grafické prostředí a jestli už v Microsoftu pochopili, že přinejmenším jednoduché javascriptové doplňky ve stylu Greasemonkey rozšiřují možnosti prohlížeče mnohonásobně více než ten sebelepší akcelerátor nebo „výstřižek“ (Web Slices) – doplňky v podání redmondských Softies.

Všechny novinky si můžete vyzkoušet v katalogu experimentů Test Drive

O jádře IE9 se mluvilo v relativních superlativech. Víme, že Microsoft zpopularizoval hardwarovou akceleraci webového prohlížeče a do jisté míry srovnal krok s konkurencí. Jak ve výkonnostních testech, tak poměrně významně i v podpoře nových webových technologií. Stále to ale není ono. Nejnovější Firefox a Chrome si už pohrávají s technikami, nad kterými zatím přemýšlejí jen lidé z pracovních skupin W3C a WHATWG, zatímco IE9 podporuje „pouze“ základní HTML5.

internet explorer 10.png
Internet Explorer 10 Platform Preview 2

Nebudu zacházet příliš do detailů, díky přetrvávající vysoké penetraci IE zde ale platí jedna přímá úměra. Pokročilejší „nextgen“ technologie HTML5 se rozšíří až tehdy, kdy je zavedou všichni z velké čtyřky IE, Firefox, Chrome a Safari. Jak se zdá, skutečně se tomu stavu pomalu blížíme.

Současné novinky uvedené v rámci testovacích verzí Internet Exploreru 10 běžného surfaře asi příliš nenadchnou, jádro ale přináší hromadu změn pro webové programátory. A podporu hromady nových technologií, díky kterým by u těch nejmodernějších webů nemuselo brzy platit, že „poběží pouze v nejnovějším Chromu a Firefoxu“.

HTML5 Test

Co vlastně tedy jádro IE nově podporuje? Velmi rychlý nástin získáte klasickým benchmarkem HTML5 Test. Vlastně to ani není benchmark, ale jednoduchá kontrolní zkouška, která se prohlížeče zeptá na podporu několika desítek dílčích webových technologií. Za každou pozitivní odpověď pak prohlížeči připíše určité skóre. To celkové je jejich součtem. Test nicméně nezkoumá kvalitu podpory – samotnou interpretaci nebo snad výkon.

html5test.png  html5test.png  chrome.png
Skóre v HTML5 Testu postupně pro IE 9, IE 10 PP 2 a Chrome 12

Internet Explorer 9 v tomto testu získá 141 bodů. Doposud je to jen abstraktní číslo, nabízí se ale srovnání třeba s aktuálním Chromem, který dosáhne 328 bodů. A co na to aktuální testovací verze IE 10? Rovných 231 bodů. Stále to není teoretické maximum 450 bodů, vývojový tým nicméně ale opět zapracoval a surfař z toho bude těžit především tak, že některé technologie, které byly doposud doménou Chromu, se budou moci lépe rozšířit. Jinými slovy řečeno, ne každý webový programátor použije technologii, kterou zpracuje pouze prohlížeč každého pátého surfaře. Pokud ale technologii bude vedle Chromu podporovat i Firefox a IE, může se z teoretického standardu stát ten skutečný, který budou weby masivně využívat.

Web Workers, HTML5 Sandbox, HTML5 Forms

K těmto dnes přeci jen ještě stále okrajovějším webovým technologiím patří třeba Web Workers – vícevláknový Javascript. Díky němu se mohou webové stránky skutečně ještě lépe proměnit v asynchronní aplikace a také využívat vícejádrového procesoru. Takový webový program tedy pak v hlavním procesu spustí grafické prostředí stránky a poté třeba další proces – vlákno, kde bude probíhat nějaká složitá úloha. Mezi tím budete moci s aplikací libovolně pracovat, protože pracovní vlákno poběží samostatně na pozadí. Web Workers budou moci lépe využívat současných procesorů a jejich podpora v příštím IE znamená, že o nich už mohou přemýšlet i ti autoři, kteří své weby necílí pouze na surfaře v Chromu.

web workers.png
Javascriptový benchmark. O ten tu ale nejde. Jde tu o to, že v prvním případě jej zpracovává hlavní pracovní vlákno stránky a v tom druhém nové samostatné vlákno Web Worker, které zatíží druhé jádro CPU. I proto je mnohem rychlejší.

Internet Explorer 10 bude podporovat také HTML5 Sandbox. Ten plní podobnou roli jako každé jiné „pískoviště“. V sandboxu tedy může běžet třeba vložený rám s cizím obsahem – iframe. Ten se dnes používá typicky třeba pro vložení nějakého „embedovaného“ obsahu počínaje přehrávačem YouTube a konče kdejakým webovým widgetem. Pokud u takového iframu zvolíte možnost sandboxu – doslovným zápisem <iframe src=”neco.html” sandbox></iframe> – kód stránky bude totálně izolovaný od zbytku světa, nebude moci zobrazovat ošklivá popup okna, nebude moci v rámci XSS krást cookies a tak dále. Bezpečnost a otevřenost sandboxu bude přitom nastavitelná. I tato technika může přispět k vyšší bezpečnosti.

html5 forms ie.png  html5 forms chrome.png
Kontrolu správně vyplněného formuláře zvládne díky HTML5 Forms sám prohlížeč. Takto bude bublinová nápověda vypadat v případě špatné hodnoty v IE 10 a v aktuálním Chromu.

Nakonec ještě jedna zajímavá novinka – IE10 se konečně naučí podpoře HTML5 formulářů. Ty jsou mnohem chytřejší než podoba ze současného světa HTML4, bez nějakého složitého kódování totiž obsahují prvky pro e-mail s validátorem a tak dále. Pokud do svého formuláře tedy vložíte <input type=”email” />, zobrazí se sice vcelku běžné textové pole, jeho obsahem ale může být pouze e-mail ve správném formátu. Pokud se tak nestane, prohlížeč sám zobrazí chybové hlášení, aniž byste museli cokoliv psát v javascriptu.

Microsoft inovátor: Page Visibility a CSS3 Floats

Doposud Microsoft pouze doháněl ujíždějící vlak a rychle dopisoval podporu technologií, které už ostatní mají. Nicméně Microsoft hodlá prodat i něco svého. Už dříve začal aktivnější spolupracovat se standardizačním konsorciem W3C a do debaty přispěl s Web Performance API a CSS3 Floats.

CSS3 Floats by měla být nová schopnost kaskádových stylů pro pokročilou práci s textem a objekty. Pracovní skupinu vedle lidí z Microsoftu doplňují také lidé z Adobe, kteří mají se zarovnáváním textu bohaté zkušenosti z profesionálních nástrojů Illustrator a InDesign, ve kterém se připravuje drtivá většina tištěných periodik. V podstatě jde o chytré zarovnávání, rozdělování a obtékání textu do bloků a panelů, jak to umí každý pokročilejší textový procesor. Webová stránka by pak mohla jednoduše dosáhnout podobné typografie jako v tištěném médiu.

floats.png  floats.png
Modrý blok můžete myší libovolně přesouvat v bloku textu a ten se bude správně lámat. Stejně tak můžete blok textu zarovnávat do panelů a samostatných bloků. Na správném zalamování pracuje společně s Microsoftem i Adobe.

Page Visibility je pro změnu technologie, která se stará o to, jak co nejefektivnější pracovat s baterií. Na webu stále častěji surfujeme na přenosných zařízeních, kde je výdrž baterie důležitější než absolutní výkon CPU. Page Visbility je experimentální API, které se momentálně projednává v pracovní skupině W3C Web Performance a na jeho vývoj dohlíží společně s Microsoftem i Google. Za úkol má předat autorovi stránky informaci, kdy je obsah na webu viditelný a kdy ne.

web visibility.png
Časová osa zčervená v případě, kdy okno minimalizujete a opět zezelená, pokud okno obnovíte. Programátor by třeba v případě hry mohl náročný proces pozastavit a poté opět obnovit.

To je docela důležité, protože webová stránka může například něco animovat a vykreslovat i ve chvíli, kdy je překrytá jiným oknem – nebo kdy je prohlížeč minimalizovaný. Na monitoru sice nic neuvidíte, ale javascript může ve smyčce stále a stále počítat a… A doslova likvidovat energii v akumulátoru notebooku kdesi ve vlaku nebo třeba v internetové kavárně.

Díky Page Visiblity se programový kód dozví, že je okno stránky neviditelné a relativně zbytečná operace se tedy může dočasně zastavit do chvíle, než se čtenář bude stránce opět věnovat. Můžete namítnout, že toto by přece mohl prohlížeč udělat sám, vedle nedůležité animace nebo nějakého vedlejšího výpočtu ale může kód na pozadí zpracovávat i něco mnohem důležitějšího. Takto tedy rozhodnutí o tom, co případně pozastavit a co nechat běžet, přenechá prohlížeč čistě autorovi kódu.

HTML5 parser – peklo pro staré weby

Další z novinek, která zasáhne hromadu webů, je podpora HTML5 parseru. To znamená, že některé operace s kódem HTML už nebudou v Desítce povoleny. To je v podstatě správně, nicméně některé tyto operace se doposud používají třeba k odhalení toho, že surfař právě brouzdá v Internet Exploreru. Patří sem třeba hojně používaná podmínka:

<!--[if IE]> kód, který se zpracuje pouze v IE <![endif]-->.

Tento zápis ale není kompatibilní s HTML5 parserem a v Internet Exploreru 10 se jednoduše nezpracuje. Vývojáři tedy budou muset kód upravit, což při tomto „bastlení“ nemusí být vždy nejjednodušší, nebo v hlavičce stránky prohlížeči řeknou, ať pro tento případ použije staré jádro IE. Takzvaným kompatibilním a quirks režimům se mnozí smějí, protože IE takto skutečně udržuje několik verzí svého jádra, které jsou vždy k dispozici, ale jinak to prostě nejde. Microsoft si v minulosti díky obrovské penetraci IE jednoduše nemohl dovolit provést revoluci – nehledě na to, že je vázaný i oficiální podporou Internet Exploreru, jehož vývojový cyklus je do jisté míry svázaný s Windows.

Na webu bohužel stále přetrvává obrovská hromada webů, jejichž kód je pro dílčí prohlížeče optimalizovaný formou různého kódu pro různý prohlížeč. To je ale špatně, autor kódu se totiž nemá ptát na prohlížeč, který se může měnit, ale na podporu konkrétní technologie.

Tedy jednoduše řečeno, špatný kód by mohl vypadat takto:

Pokud jsi prohlížeč A, použij kód A
Pokud jsi prohlížeč B, použij kód B

V javascriptové praxi tedy třeba:

if(navigator.userAgent.indexOf("MSIE") == -1){
  použij kód A

}
else{
  použij kód B
}

Zatímco správný kód by měl vypadat takto:

Pokud podporuješ technologii A, použij kód A
Pokud podporuješ technologii B, použij kód B

V javascriptové praxi tedy třeba:

if(window.addEventListener){
  použij kód A
}
else if(window.attachEvent){
  použij kód B
}

Rozdíl je zřejmý. V prvém případě platí, že pokud se prohlížeč A změní a namísto nestandardního kódu A bude preferovat kód B, webové stránky se budou zobrazovat špatně – právě díky tomu obsahují poslední verze Internet Exploreru kompatibilní režim. Druhý případ naopak dopadne správně. Pokud se prohlížeč změní a namísto nestandardní technologie A bude pracovat s technologií B, vše proběhne bez jediného problému a bez potřeby dalšího zásahu.

benchmarky.png
Na webu Test Drive samozřejmě najdete i hromadu nových výkonnostních testů

Novinek v Internet Exploreru 10 bude mnohem více včetně podpory drag&drop a dalších populárních technologií, které třeba používáte v nejnovějším Firefoxu a Chromu, aniž byste nad nimi přemýšleli. Díky tomu, že Microsoft pokračuje směrem, který nastolil při vývoji IE9, HTML5 v tom širším pojetí „všeho nového“, by se mohl skutečně stát standardem a ne ryzím experimentem, který najde uplatnění jen u několika okrajovějších dem s popiskem „Optimized for Chrome 14 Dev“.

Diskuze (19) Další článek: AMD se trefuje do Nvidie: Radeon HD 6990M je prý nejrychlejší grafikou

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , , ,