Um es einfach auszudrücken: Web Worker ist ein JavaScript-Thread, der im Hintergrund läuft und keinen Einfluss auf die Antwort der Seite hat.
Wir wissen, dass JavaScript eine Single-Threaded-Skriptsprache ist, das heißt, sie kann nur eine Sache gleichzeitig ausführen, da es sonst zu äußerst komplexen Synchronisationsproblemen kommt. Beispielsweise verfügt JavaScript über zwei Threads gleichzeitig. Ein Thread ist für das Hinzufügen von Inhalten zu einem bestimmten DOM-Knoten verantwortlich, und der andere Thread löscht den Knoten. Welchen Thread sollte der Browser zu diesem Zeitpunkt als Hauptthread verwenden?
Um das Problem der Synchronisationskomplexität zu vermeiden, ist JavaScript seit seiner Geburt Single-Threaded, was auch ein Merkmal dieser Sprache ist.
Der Single-Thread-Mechanismus von JavaScript verursacht ein Problem. Wenn einige sehr komplexe Aufgaben verarbeitet werden müssen, muss die Seite warten, bis die Aufgabe abgeschlossen ist, bevor sie auf den Vorgang des Benutzers reagieren kann Dies hat negative Auswirkungen auf die Reaktion der Seite und das Benutzererlebnis. Um dieses Problem zu lösen und die Rechenleistung von Multi-Core-CPUs zu nutzen, hat HTML5 den Web Worker-Standard vorgeschlagen um mehrere Threads zu erstellen, aber diese neu erstellten Threads werden als untergeordnete Threads verwendet und unterliegen vollständig der Haupt-Thread-Kontrolle. Und es ist nicht erlaubt, das DOM zu betreiben. Tatsächlich ist es immer noch Single-Threaded-Typ. Daher können wir einige zeitaufwändige Aufgaben an den vom Web Worker erstellten untergeordneten Thread übergeben, um ihn im Hintergrund auszuführen, während die Vordergrundseite weiterhin die Antwort des Benutzers verarbeiten kann.
Da es sich bei dem von Web Worker erstellten Thread um einen eingeschränkten Unterthread handelt, gelten einige Nutzungsbeschränkungen:
Web Worker kann nicht auf DOM-Knoten zugreifen
Web Worker kann nicht auf globale Variablen oder globale Funktionen zugreifen
Web Worker kann keine Funktionen wie „alert()“ oder „confirm“ aufrufen; 🎜>
Web Worker kann nicht auf globale Browservariablen wie Fenster und Dokument zugreifen.Das obige ist der detaillierte Inhalt vonIm Hintergrund ausgeführter JavaScript-Thread – Web Worker. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!