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,

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

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

Tesla chce změnit nákladní dopravu. Její elektrický náklaďák má ohromující parametry

Tesla chce změnit nákladní dopravu. Její elektrický náklaďák má ohromující parametry

** Tesla představila elektrický kamion ** Má obdivuhodný výkon i dojezd ** Prodávat by se měl už za dva roky

17.  11.  2017 | Vojtěch Malý | 237

Black Friday 2017: Přehled slev na elektroniku a počítače

Black Friday 2017: Přehled slev na elektroniku a počítače

** Začala slevová mánie zvaná Black Friday ** Pozor, ne všechny slevy jsou opravdu výhodné ** Průběžně sledujeme slevové akce v počítačových e-shopech

Včera | David Polesný | 31

Google Mapy mají nový design. Líbí se vám víc než předchozí? Tady je srovnání

Google Mapy mají nový design. Líbí se vám víc než předchozí? Tady je srovnání

** Nový design Google Map přijde na počítače i mobilní telefony. ** Zaměřuje se na zvýraznění konkrétních míst, mapové podklady jsou mnohdy upozaděné. ** Lépe pracuje s chráněnými oblastmi a parky.

20.  11.  2017 | Vladislav Kluska | 30

Bluetoothové patálie: O bezdrátovém přenosu hudby a  problémech s kodeky

Bluetoothové patálie: O bezdrátovém přenosu hudby a problémech s kodeky

** Bezdrátový přenos hudby je budoucnost ** K dosažení nejlepší kvality je ale potřeba, aby telefon i sluchátka podporovala správný kodek ** Záleží také na typu souborů s hudbou

17.  11.  2017 | Jakub Michlovský | 39


Aktuální číslo časopisu Computer

Otestovali jsme 5 HDR 4K televizorů

Jak natáčet video zrcadlovkou

Vytvořte si chytrou domácnost

Radíme s koupí počítačového zdroje