T bbsz l s g a b ng sz ben avagy merj nk e javascriptben programot rni
Download
1 / 24

- PowerPoint PPT Presentation


  • 63 Views
  • Uploaded on

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. A Javascript nem erre való!. http://weblabor.hu//blogmarkok/104451#comment-67266. A legnagyobb hátrány:.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '' - ovidio


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
T bbsz l s g a b ng sz ben avagy merj nk e javascriptben programot rni

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.


A javascript nem erre val

A Javascript nem erre való!

http://weblabor.hu//blogmarkok/104451#comment-67266


A legnagyobb h tr ny
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


A megold s web worker
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


T bbsz l s g a b ng sz ben avagy merj nk e javascriptben programot rni

index.html

hello.js


Haszn lati el ny k
Használati előnyök

  • A böngésző „lefagyasztása nélkül” tudunk hosszabb számításokat végezni

  • Kihasználhatóak a több magos processzorok

  • demo


T bbsz l teljes tm ny
Többszálú teljesítmény

http://www.yafla.com/dforbes/Web_Workers_and_You__A_Faster_More_Powerful_JavaScript_World/


B ng sz t mogat s
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


T bbsz l s g a b ng sz ben avagy merj nk e javascriptben programot rni

A Javascript lassú.

PHP 5.2: 5,26 sec


T bbsz l s g a b ng sz ben avagy merj nk e javascriptben programot rni

Perl 5.10: 3,26 sec





B ng sz t mogat s 2
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ő


Emulatedworker js
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


Objectworker js
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






Sszefoglal s
Ö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


K sz n m a figyelmet

Köszönöm a figyelmet!

Farkas MátéBudapest.js meetup 2010.04.14.


Forr sk dok forr sok
Forráskódok, források

  • HTML 5 Web Workers http://www.whatwg.org/specs/web-workers/current-work/

  • Mozilla MDC https://developer.mozilla.org/En/DOM/Worker

  • http://www.yafla.com/dforbes/Web_Workers_and_You__A_Faster_More_Powerful_JavaScript_World/

  • http://ejohn.org/blog/how-javascript-timers-work/

  • Forráskódok: http://fmate14.try.hu/2010/bpjs-objectWorker/

  • objectWorker és emulatedWorker: http://code.google.com/p/object-worker/