2016-07-28 14 views

Antwort

24

Es gibt einen ziemlich großen Unterschied in dem, was sie sind bestimmt für:

Web Workers

Web Worker bietet eine einfache Möglichkeit für Web-Content-Skripte in Hintergrund-Threads ausgeführt werden. Der Worker-Thread kann Aufgaben ausführen, ohne dass die Benutzeroberfläche beeinträchtigt wird. Darüber hinaus können sie die E/A mit XMLHttpRequest ausführen (obwohl die Attribute responseXML und channel immer null sind). Einmal erstellt, kann ein Arbeiter-Nachrichten an den JavaScript-Code senden, die es erstellt von Nachrichten zu einem Ereignis Handler von diesem Code angegeben veröffentlichen (und umgekehrt.)

Source - Using Web Workers

Service-Worker

Service-Mitarbeiter fungieren im Wesentlichen als Proxy-Server, die zwischen Web-Anwendungen und dem Browser und Netzwerk (wenn verfügbar) sitzen. Sie sind vorgesehen, um (unter anderem) die Erstellung von effektiven Offline-Erfahrungen zu ermöglichen, Netzwerkanforderungen abzufangen und entsprechende Aktion basierend darauf, ob das Netzwerk verfügbar ist und aktualisierte Assets auf dem Server befinden. Sie erlauben auch Zugriff auf Push-Benachrichtigungen und Hintergrundsynchronisations-APIs.

Source - Service Worker API

So sind Web-Arbeiter praktisch teuer Skripte auszuführen, ohne Benutzeroberfläche verursacht, einzufrieren, während Service-Mitarbeiter sind nützlich Antwort von Netzwerkanforderungen zu ändern (für examle wenn eine Offline-Applikation erstellen).