1. Többszálúság a
böngészőben, avagy
merjünk-e Javascriptben
programot írni?
Farkas Máté
Budapest.js meetup 2010.04.14.
2. A Javascript nem erre való!
http://weblabor.hu//blogmarkok/104451#comment-67266
3. A legnagyobb hátrány:
• Amíg Javascriptben számítást
végzünk, semmi más nem
történhet a böngészőben
• Kivétel jelenleg: Opera
• És majd a Webkit 2 alapú
böngészők
4. A megoldás: Web Worker
• A Google Gears-féle WorkerPool
szabványosítása, a HTML 5 része
• A Worker egy teljesen különálló
folyamatként dolgozik, csak a
létrehozójával tud kommunikálni,
és vele is csak üzenet küldéssel
8. Böngésző támogatás
• Chrome: minden worker új process
• Safari: minden worker új szál
• Firefox: nem string értékek
küldése/fogadása is lehet
• Opera: nem támogatja
• Internet Explorer: nem támogatja
15. Böngésző támogatás 2
• A HTML 5 Worker nem kompatíbilis
a Gears-féle WorkerPool-lal
• Volt több próbálkozás szimulálni
ezt a viselkedést (jsworker, ie-web-
worker), de egyik sem kielégítő
16. emulatedWorker.js
• Elég ezt betölteni, és a Worker
API-t használó Javascript futni
fog minden böngészőben…
• … de ettől nem lesz többszálú…
• … és komolyabb adatszerkezetek-
nél bonyolult az üzengetés
17. objectWorker.js
• Egy intuitív absztrakció a
Workerek használatához
• (Típusjelzéssel ellátott) objektumok
küldése/fogadása
• Eljárás hívás
22. Összefoglalás
• Kis odafigyeléssel ma már írhatunk
programot Javascriptben
• Weboldalak esetén egyszerűen
küldhetjük háttérbe a számítási
feladatokat
• Worker-képes böngészővel teher-
mentesíthető a szerverünk