37
Sebastian Bauer | Nero D&S GmbH Web Workers „Das Arbeitstier Browser“

Web Workers - Das Arbeitstier Browser

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Web Workers - Das Arbeitstier Browser

Sebastian Bauer | Nero D&S GmbH

Web Workers

„Das Arbeitstier Browser“

Page 2: Web Workers - Das Arbeitstier Browser

Wer spricht?

• Sebastian Bauer

• Team Leader Intranet Services Team

• Webentwickler aus Leidenschaft

• „Web/Mobile addicted“

• @litervollmilch

• http://xing.com/profile/Sebastian_Bauer22

• http://www.itkrauts.com

Page 3: Web Workers - Das Arbeitstier Browser

Über die Nero D&S GmbH

• Entwickler für Liquid Media Technologien

• Tochter der Nero AG

• 1995 gegründet

• Hauptsitz: Karlsbad, Deutschland

• Regionale Niederlassungen:

• Karlsbad, Deutschland

• Glendale, Kalifornien, USA

• Yokohama, Japan

• Ca. 500 Mitarbeiter weltweit

• Über 300 Millionen Installationen

• Job gesucht?? ;-)

Page 4: Web Workers - Das Arbeitstier Browser
Page 5: Web Workers - Das Arbeitstier Browser

WEB WORKERS? WTF?

Page 6: Web Workers - Das Arbeitstier Browser

Ein Überblick über Web Workers

• W3C Working Draft

• HTML5

• JavaScript API für Arbeitsprozesse

im Hintergrund

• Parallelisierung ohne UI Blocking

• Kein echtes Multi-Threading!

• Dedicated Workers / Shared Workers

Page 7: Web Workers - Das Arbeitstier Browser

UND WOFÜR SO?

Page 8: Web Workers - Das Arbeitstier Browser
Page 9: Web Workers - Das Arbeitstier Browser
Page 10: Web Workers - Das Arbeitstier Browser
Page 11: Web Workers - Das Arbeitstier Browser
Page 12: Web Workers - Das Arbeitstier Browser

WEB WORKERS IM EINSATZ

Legen wir los!

Page 13: Web Workers - Das Arbeitstier Browser

Einfaches Beispiel

• Simulierte, 5 Sekunden lange

„Berechnung“

Page 14: Web Workers - Das Arbeitstier Browser

The Web Worker‘s Way - Dedicated Worker

Page 15: Web Workers - Das Arbeitstier Browser

Dedicated Worker – bsp1_worker.js

Page 16: Web Workers - Das Arbeitstier Browser

„Liebe ist die einzige Sache,die sich vermehrt,

wenn man sie teilt.“Autor unbekannt

Page 17: Web Workers - Das Arbeitstier Browser

SHARED WORKERS

Einen Schritt weiter..

Page 18: Web Workers - Das Arbeitstier Browser

Ein Worker, Sie alle zu

knechten..

• Ein Worker für mehrere Seiten

• Verbindung über „Ports“

• „Stirbt“ wenn alle Seiten geschlossen

• Posten von Nachrichten an alle

„Ports“ möglich

Page 19: Web Workers - Das Arbeitstier Browser

Beispiel Shared Worker

Page 20: Web Workers - Das Arbeitstier Browser

Shared Worker –

bsp2_sharedworker.js

Page 21: Web Workers - Das Arbeitstier Browser

Shared Worker – bsp2_sharedworker.js

Page 22: Web Workers - Das Arbeitstier Browser

EINSCHRÄNKUNGEN

Was geht nicht?

Page 23: Web Workers - Das Arbeitstier Browser

Kein Zugriff auf den DOM!

• alert()

• document.getElementById()

• …

Page 24: Web Workers - Das Arbeitstier Browser

Kein Zugriff auf Elternseite!

• window Objekt

• Objekte aus globalem Scope

Page 25: Web Workers - Das Arbeitstier Browser

WAS GEHT DENN ÜBERHAUPT?

Geht’s noch?

Page 26: Web Workers - Das Arbeitstier Browser

Zugriff auf…

• navigator

• location (nur lesend!)

• XMLHttpRequest

• Object, Array, Date, Math, String

• setTimeout(), setInterval()

• importScripts() (innerhalb der gleichen

Domain)

• ApplicationCache API

Page 27: Web Workers - Das Arbeitstier Browser

Übertragen von Daten via

postMessage()

• Strings

• Arrays

• JSON Objekte

• …

Page 28: Web Workers - Das Arbeitstier Browser

Und natürlich…

„Spawnen“ weiterer Worker

Page 29: Web Workers - Das Arbeitstier Browser

Best Practices

• Worker spezialisieren!

• Keine riesigen Objekte hin- und

herschieben!

• addEventListener() benutzen

• Keine „Trivialarbeiten“

Page 30: Web Workers - Das Arbeitstier Browser

WEITERE EINSATZGEBIETE /

INTERESSANTE DEMOS

Page 31: Web Workers - Das Arbeitstier Browser

Motion Tracking with Web

Workers

http://bit.ly/ww_motion

Page 32: Web Workers - Das Arbeitstier Browser

„Simulated Annealing“

http://bit.ly/ww_annealing

Page 33: Web Workers - Das Arbeitstier Browser

Außerdem interessant für..

• Spiele-Engines

• Desktop Anwendungen (AIR?)

• Berechnungen von Graphen (Canvas)

• …euer Projekt? Ideen?

Page 34: Web Workers - Das Arbeitstier Browser

KOMPATIBILITÄT?

Zu guter Letzt…

Page 35: Web Workers - Das Arbeitstier Browser
Page 36: Web Workers - Das Arbeitstier Browser

WEB WORKERS FTW!

Web Workers – WTF?

Page 37: Web Workers - Das Arbeitstier Browser

Bildernachweis

• -nw- @flickr: http://www.flickr.com/photos/-nw-/4900267921/

• Éole @flickr: http://www.flickr.com/photos/eole/73301169/

• Saschaaa @ flickr: http://www.flickr.com/photos/saschaaa/152502539/

• Stefan Baudy @flick: http://www.flickr.com/photos/-bast-/349497988/

• RavenFire @flickr:

http://www.flickr.com/photos/escapethematrix/525800552/

• Ka Lodger @flickr: http://www.flickr.com/photos/kaeau/31336163/

• Chris-Håvard Berge @flickr:

http://www.flickr.com/photos/chberge/4113323306/

• Tara Hunt @flickr:

http://www.flickr.com/photos/missrogue/199208087/