reklama

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: Technologie, Google, Microsoft, Prohlížeče, Web, Programování, Chrome, Internet Explorer, Head, Alert

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é?
reklama
Určitě si přečtěte

Vyzkoušeli jsme FM štěnici: Když si vtipálci hrají na pirátské rozhlasové vysílání

Vyzkoušeli jsme FM štěnici: Když si vtipálci hrají na pirátské rozhlasové vysílání

** Dnes žádnou elektroniku programovat nebudeme ** Štěnice totiž funguje sama o sobě ** Stačí připojit baterii a naladit frekvenci

22.  1.  2017 | Jakub Čížek | 29

Microsoft: Zbavte se už konečně zastaralých a děravých Windows 7

Microsoft: Zbavte se už konečně zastaralých a děravých Windows 7

** Microsoft pomalu začíná kritizovat svůj nejpopulárnější OS ** Chce konečně dostat podniky na Desítky ** Bezpečnostní podpora Sedmiček vydrží ještě necelé tři roky

17.  1.  2017 | Jakub Čížek | 408

Takto si špičkoví grafici představují nový Facebook. S čistým vzhledem a bez reklam

Takto si špičkoví grafici představují nový Facebook. S čistým vzhledem a bez reklam

** Design Facebooku se delší dobu nemění a pro mnohé je nudným ** Grafici zkouší navrhovat nové koncepty toho, jak by mohla síť vypadat ** Hlasujte pro nejzdařilejší návrh

22.  1.  2017 | Stanislav Janů | 63

Umělá inteligence dokáže ze snímků srdce předpovědět, kdy zemřete

Umělá inteligence dokáže ze snímků srdce předpovědět, kdy zemřete

** Strojové učení lze skvěle použít pro vylepšení modelů pro předpověď srdečních komplikací ** Nová technologie umožňuje přesněji určit rizikové pacienty ** Dřívější diagnostika může díky včasně léčbě do budoucna zachránit životy

21.  1.  2017 | Karel Javůrek | 7

8 produktů, o kterých byste neřekli, že nesou značku Apple

8 produktů, o kterých byste neřekli, že nesou značku Apple

** Věděli jste, že Apple vyvinul celkem 45 modelů tiskáren? ** ** Monitor na výšku, plotter nebo herní konzole - to vše měl Apple ve své nabídce ** Většinu z těchto produktů pohřbil Steve Jobs

19.  1.  2017 | Stanislav Janů | 43


Aktuální číslo časopisu Computer

99 nejlepších programů pro váš počítač

Zvykejte si na umělou inteligenci

Velké testy PC zdrojů a gamepadů

Alternativní zdroje energie

reklama
reklama