Vedl jsem s kolegou takovou diskusi ohledně toho co by měl prohlížeč umět a dostali jsme se k ošetřování chyb na webech – podle něj by měl prohlížeč být schopen se vypořádat například s vadným JavaScriptem. Ačkoliv nejsem úplně stejného názoru (prohlížeč je tu od zobrazování, ne řešení neschopnosti vývojářů), tak jsem byl přepaden náhlým nápadem otestovat jak na tom ty prohlížeče vlastně jsou.
Provedený test je primitivní ale zcela dostačující. Testoval jsem jak si prohlížeče poradí s prostým nekonečným cyklem.
<html> <head> <title>Crash test</title> <script> function doIt() { var i = 0; while( i < 50 ) { document.write(i); } } </script> </head> <body> <button onclick="doIt();">Start</button> </body> </html>
Výsledky nejsou až tak překvapující ale pro někoho mohou být rozhodně zklamáním.
Firefox 3.6
Firefox celou situaci prostě nezvládl. Zasekl se ihned po stisku tlačítka a po 5 minutách stavu absolutního nevědomí jsem ho sestřelil. Podle všeho se mi FF snažil nabídnout možnost script ukončit ale zmíněná nabídka se zobrazila jen jako další titulek v liště (okno ale žádné, bez jakékoliv možnosti zjistit o co jde). Mozilla má v tomhle směru tedy rozhodně co vylepšovat.
Internet Explorer 8
IE8 překvapil, když několik vteřin po startu testu zobrazil dialog umožňující ukončení script (včetně vysvětlení proč něco takového nabízí). Při snaze nechat script běžet se IE nedá odradit a vytrvale vybízí k ukončení scriptu. Malé plus pro Microsoft.
Opera 10.50 (build 3296)
Opera nechala script běžet a vesele plnila okno výstupem ale nijak to nebránilo v její další použitelnosti. Jak se tab plnil jedničkami, plynulost ovládání se pomalu ale jistě vytrácela a z Opery se stávala skoro tahová strategie, nicméně zavření postiženého tabu vrátilo vše do normálu.
Google Chrome 4.0.249.89 (38071)
Chrome nijak nepřekvapil. Stránka se sice zasekla stejně jako v případě Firefoxu ale narozdíl od něj šlo s prohlížečem dál pohodlně pracovat a tab se zaseknutou stránkou bylo možné bez potíží zavřít. Po nějaké době navíc vyplivl chybu načítání stránky a script ukončil.
Závěr
Firefox, byť ostatní v mnoha ohledem převyšuje, se v tomto testu předvedl jako zcela neschopný a Mozilla by se měla zaměřit právě na zvyšování stability. IE8 příjemně překvapil a ačkoliv jinak pořád stojí za starou bačkoru, je fajn vidět pokrok proti předchozím verzím. Zbylé dva prohlížeče nejsou překvapením. Snad jediné překvapení je Opera, která ma už zase jiné ovládání :)