Microsoft a Google tvoří W3C standardy. Společně

Rychlost prohlížeče a časovou i datovou náročnost webových stránek dnes můžete změřit nejrůznějšími benchmarky. W3C se snaží pro tyto případy vytvořit jednotný standard.
Microsoft a Google tvoří W3C standardy. Společně

Ještě před pár lety se Microsoft tvorby standardů W3C příliš neúčastnil, to se ale pomalu mění. Nechce být pouze jejich implementátorem, ale i aktivním tvůrcem. Po několika vlaštovkách tak nyní programátoři IE spolupracují s Googlem (!) v pracovní skupině W3C – Web Performance Working Group. Ta má za úkol standardizovat měření výkonu internetového prohlížeče.

A ten se dnes měří skutečně obtížně, po ruce je totiž pouze hromada nejrůznějších benchmarků, založených na čistém Javascriptu. Takové testy sice udělají kus práce a dnes jsou vlastně jediným referenčním srovnáním (s výsledky z testu SunSpider se ostatně chlubí i Microsoft), nejsou ale dokonalé.

Pokud má nějaký skript změřit čas načítání a zpracovávání nějakého webu (a přeneseně tedy i výkon prohlížeče), potřebuje zjistit některé informace přímo z jádra prohlížeče – třeba přesný čas, kdy surfař klepnul na odkaz. Jedině tak lze získat reálnou latenci uživatele a na základě velkých průtahů třeba zrychlit server, konektivitu nebo odstranit tunu nepotřebného Javascriptu, který zdržuje zpracovávání stránky a přitom se třeba stará jen o nějakou zbytečnou drobnost.

Web Timing – jak dlouho se skutečně načítala stránka

Prvním výsledkem práce nové skupiny má být projekt Web Timing (Google na něm pracuje už delší dobu). Prozatím jen pracovní verze Web Timingu je balík několika objektů přístupných skrze Javascript, které dají programátorovi webu informaci, kdy surfař klepnul na odkaz a další. Ostatně podívejte se třeba na jednoduchý příklad, který změří čas od prvotního klepnutí na odkaz až po kompletní načtení stránky. V čase tedy bude započítána odezva prohlížeče, dotaz na DNS server, webový server, generování kódu serverem, stažení dat ze serveru, interpretace dat a jejich zobrazení.

<html>
  <head>
    <script type="text/javascript">
    function onLoad(){
      var presnyCas = new Date().getTime();
      var latence = presnyCas - performance.timing.navigationStart;
      alert("Stránka se načítala tákhle dlouho: "+latence);
    }
    <script>
  </head>
  <body onload="onLoad()">

     Bla bla bla bla bla bla
     </body>
</html>

A nyní tento nový kód srovnejte s běžným Javascriptem:

<html>
  <head>
    <script type="text/javascript">
    var zacatek = new Date().getTime();
    function onLoad() {

      var presnyCas = new Date().getTime();
      var latence = presnyCas - zacatek;
      alert("Stránka se načítala tákhle dlouho: " + latence);
    }
    </script>
  </head>
  <body onload="onLoad()">

  Bla bla bla bla bla bla
  </body>
</html>

Jak měřit bez standardů

„Šílení měřiči času“ samozřejmě mohou poněkud kostrbatě obejít Web Timing a použít klasický Javascript. Výsledky sice nebudou zcela totožné, ale stačí na původní stránce zaměnit všechny běžné odkazy za Javascript. Jakmile na takový odkaz klepnete, Javascript změří aktuální čas a vloží ho do cílového odkazu jako parametr. Javascript na cílové stránce si ho zpracuje a bude tedy vědět, kdy jste klepli na odkaz a jaký časový rozdíl tedy musí spočítat. Jistě mi ale dáte za pravdu, že tento postup není vhodné pro ostré nasazení na internetu. S DOMTimingem dále experiemntuje i Firefox.

Jaký je v obou případech rozdíl? V druhé ukázce se změří doba načítání stránky od okamžiku, kdy prohlížeč zpracoval řádek s proměnnou začátek, do které se uložil přesný čas a po dokončení nahrávání stránky se pouze spočítá rozdíl mezi aktuálním časem a startem načítání. Výsledný čas ale nezměří komunikaci prohlížeče se serverem (tedy skutečnou internetovou latenci).

IE 9 a Chrome 6

Web Timing toho samozřejmě nabízí mnohem více, měřit totiž můžete konkrétní fáze komunikace se serverem a časem přibydou jistě i další metody. Je to první vlaštovka webového benchmarkingu postaveného přímo v samotném prohlížeči – tentokrát tedy neměří skript třetí strany, ale samotný program.

Specifikaci Web Timing v současnosti nepodporuje jediný stabilní prohlížeč, skutečně se totiž jedná pouze o návrh, rozumí ji ale třeba IE9 Developer Preview a poslední noční sestavení Chrome 6. Oba prohlížeče ale v kódu pro označení používají vlastní předpony ms (window.msPerformance.*) a webkit, aby bylo vývojářům jasné, že se zatím ani zdaleka nejedná o normu – tu by W3C konsorcium mělo vypustit až v září příštího roku.

Ukázka W3C technologie Web Timing je i součástí testovacího webu IE9 Test Drive. Podívat se na ni můžete ve zkušební verzi Internet Exploreru 9 na této adrese,

Diskuze (13) Další článek: Boj o koupi společnosti 3Par. Nabídne víc Dell, nebo HP

Témata článku: Technologie, Microsoft, Google, Web, Prohlížeče, Chrome, Internet Explorer, Programování, W3C, První vlaštovka, Nový kód, Jediný rozdíl, Head, Google+, Benchmarking, Jednoduchý příklad, Alert


Určitě si přečtěte

Acer Swift 7: Notebook tenký jako mikrotužková baterie

Acer Swift 7: Notebook tenký jako mikrotužková baterie

** Celý notebook včetně displeje se vejde pod 9 mm ** Výkon stačí pro kancelář, ale porazí ho stroje za třetinu ceny ** Ještě tenčí než předchozí generace, ale už ne tolik kompromisů

Tomáš Holčík | 34

Vyzkoušeli jsme eObčanku a přihlásili se s ní na weby úřadů. Vážně to funguje!

Vyzkoušeli jsme eObčanku a přihlásili se s ní na weby úřadů. Vážně to funguje!

** Máme eObčanku, máme čtečku, vyzkoušeli jsme přihlášení na weby úřadů. ** Objevily se drobné problémy, podařilo se nám je vyřešit. ** Používání eObčanky pro online identifikaci je velmi pohodlné.

Marek Lutonský | 35

Na Zemi je nejtepleji za posledních více než 100 tisíc let. Co nám hrozí?

Na Zemi je nejtepleji za posledních více než 100 tisíc let. Co nám hrozí?

** Letošní červenec byl třetím nejteplejším měsícem od roku 1880 ** Teplota naší planety roste raketovým tempem ** Co lidstvu hrozí v období, které v minulosti nemá obdoby?

Karel Kilián | 68

Roboruka se 100 let učila otočit kostičku. Skutečné A.I. se možná nikdy nedočkáme

Roboruka se 100 let učila otočit kostičku. Skutečné A.I. se možná nikdy nedočkáme

** Strojové učení v posledních deseti letech dokázalo divy ** Používáme ho dnes každý den nejen ve vyhledávači ** A přesto se člověku nepřibližuje ani náznakem

Jakub Čížek | 59

Musk pošle lidi na oblet Měsíce. Japonský podnikatel Maezawa vezme na cestu až osm umělců

Musk pošle lidi na oblet Měsíce. Japonský podnikatel Maezawa vezme na cestu až osm umělců

** SpaceX chce nejdříve v roce 2023 vyslat lidi na oblet Měsíce ** Hlavním pasažérem bude japonský podnikatel Jusaku Maezawa, který vezme na cestu až 8 umělců ** Pětidenní cesta proběhne v chystané lodi BFS

Petr Kubala | 14


Aktuální číslo časopisu Computer

Megatest: 13 grafických karet

Srovnání 7 dokovacích stanic s USB-C

Jak na perfektní noční fotografie

Kvalitní zdroje informací pro sebevzdělávání