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.

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,

Témata článku: Microsoft, Technologie, Google, Web, Prohlížeče, Programování, Chrome, Internet Explorer, Head, Alert, Benchmarking

13 komentářů

Nejnovější komentáře

  • Petr Vlk 31. 8. 2010 23:21:25
    Zjevně byste si mohl něco přečíst o fungování W3 (historii vývoje webu a...
  • Petr Vlk 31. 8. 2010 23:16:48
    Ovšem ony standardy (a jsou de facto ne de jure) definují pouze jako...
  • Petr Vlk 31. 8. 2010 23:13:21
    Například které?
Určitě si přečtěte

Kde nejlevněji uložit 1 TB dat: Srovnali jsme aktuální ceny cloudových úložišť

Kde nejlevněji uložit 1 TB dat: Srovnali jsme aktuální ceny cloudových úložišť

** Srovnali jsme známá cloudová úložiště podle toho, kolik měsíčně zaplatíte za 1TB ** Ceny se pohybují od dvou stovek až po tisíc korun ** Google umožní uložit až 30 TB dat

18.  3.  2017 | Stanislav Janů | 115

Špičkoví hackeři útočili na prohlížeče. Chrome odolal, ale Edge je tragédie

Špičkoví hackeři útočili na prohlížeče. Chrome odolal, ale Edge je tragédie

** Do Vancouveru se sjeli hackeři ** Soutěžili v útocích na prohlížeče ** Chrome odolal, ale Edge to projel na celé čáře

22.  3.  2017 | Jakub Čížek | 79

Pojďme programovat elektroniku: Meteostanice, která bude díky Sigfoxu posílat stav počasí třeba z vrcholu Sněžky

Pojďme programovat elektroniku: Meteostanice, která bude díky Sigfoxu posílat stav počasí třeba z vrcholu Sněžky

** Příští roky budou ve znamení internetu věcí ** Podívali jsme se podrobně na síť Sigfox ** Takhle s ní komunikují krabičky z celé Evropy

19.  3.  2017 | Jakub Čížek | 18

Obří Mechroboti jsou realitou, měří čtyři metry a mají hmotnost přes 1,5 tuny

Obří Mechroboti jsou realitou, měří čtyři metry a mají hmotnost přes 1,5 tuny

** Jihokorejská společnost Hankook Mirae Technology vyrábí obří Mechroboty ** Jsou určené pro ovládání člověkem uvnitř ** V prodeji se objeví koncem tohoto roku za 200 milionů korun

20.  3.  2017 | Karel Javůrek | 18


Aktuální číslo časopisu Computer

Supertéma o počítačové bezpečnosti

AMD Ryzen přichází

Velké testy kinoprojektorů a levných sluchátek

Příslušenství do USB-C