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).