Przekraczanie granic
Web workery są kolejnym projektem mającym na celu poprawienia wydajności Javascriptu i uczynienia go naprawdę potężnym narzędziem. Od zawsze musimy borykać się z tym, że nasze programy wykonują się linijka po linijka, znak po znaku. Dodatkowo, zbyt obciążające procesy obliczeniowe blokują działanie UI co odstrasza potencjalnych użytkowników naszej aplikacji. Jednak dzięki zastosowaniu tego narzędzia możemy rozwiązać te problemy.
Jak to zrobić?
Wystarczy wyodrębnić część zasobożerną naszego kodu i odpalić to za pomocą prostego polecenia
new Worker("obliczaj.js");
Powyższa instrukcja wgra skrypt “obliczaj.js” i wykona go w tle.
Z workerem dogadujemy się także w łatwy sposób korzystając z API postMessage.
var worker = new Worker("obliczaj.js");
worker.onmessage = function(e){
e.data
};
worker.postMessage("start");
Pamiętać jednak należy, że sam worker nie ma dostępu do elementów DOM ani strony nadrzędnej dlatego wrzucamy tam np. same obliczenia matematyczne.
Gdzie to działa?
Póki co web workery można wykorzystać w przeglądarkach Firefox 3.5+ i Safari4 (chociaż też ludzie od chrominium coś z tym robią). Jednak implementacja (czyli pewnie i szybkość działania) mechanizmu zależy od konkretnej przeglądarki.
Przyszłość
Raytracing, grafika 3D, zaawansowana fizyka, gry które mogą zastąpić gry Flashowe. Wszystko to w możliwe jeżeli jeszcze dodamy przyspieszenie silników w przeglądarkach. Jedyny problem to czas, w którym to rozwiązanie będzie dostępne na wszystkich przeglądarkach(w wstępnej specyfikacji IE9 wynika, że póki co Microsoft nie będzie ich implementował) Pewnie to trochę potrwa ale warto czekać!
Źródła
Demo (oglądać Firefox 3.5+)
Specyfikacja
Artykuł Johna Resiga
Artykuł z dailyJS





[...] Webworkerów [...]