Mit der HTML5 Web Workers API können Sie JavaScript -Code im Hintergrund ausführen und vom Hauptbrowser -Thread getrennt. Dies verhindert das Blockieren der Benutzeroberfläche (UI), während langlebige Aufgaben ausgeführt werden. Hier erfahren Sie, wie man es benutzt:
Erstellen eines Arbeiters: Sie erstellen zunächst einen neuen Arbeiter mit einer Skript -URL. Dieses Skript enthält den Code, den Sie im Hintergrund ausführen möchten. Dies geschieht in Ihrer Haupt -JavaScript -Datei:
<code class="javascript">const worker = new Worker('worker.js');</code>
Dadurch wird ein Worker
erstellt, das den Hintergrund -Thread darstellt. Ersetzen Sie 'worker.js'
durch den tatsächlichen Pfad zu Ihrem Arbeitskript.
Das Worker Skript ( worker.js
): Dieses Skript enthält den Code, der im Hintergrund ausgeführt wird. Es ist wichtig zu beachten, dass dieses Skript einen eigenen globalen Bereich hat, der vom Haupt -Thread getrennt ist. Es kann nicht direkt auf die DOM- oder globalen Variablen des Hauptfadens zugreifen. Hier ist ein einfaches Beispiel:
<code class="javascript">self.onmessage = function(e) { let result = e.data * 2; self.postMessage(result); };</code>
Dieses Worker -Skript hört auf Nachrichten ( onmessage
) aus dem Haupt -Thread zu. Es empfängt die Daten in der e.data
-Eigenschaft, führt eine Berechnung durch und sendet das Ergebnis mit postMessage
an den Haupt -Thread zurück. self
bezieht sich auf den globalen Umfang des Arbeitnehmers.
Kommunikation (Hauptfaden): Der Haupt -Thread kann Nachrichten über postMessage()
an den Arbeiter senden:
<code class="javascript">worker.postMessage(10); // Send the number 10 to the worker</code>
Empfangen von Nachrichten (Hauptfache): Der Haupt -Thread hört auf Nachrichten des Arbeiters mit dem onmessage
-Event -Listener zu:
<code class="javascript">worker.onmessage = function(e) { console.log('Result:', e.data); // Log the result received from the worker };</code>
Kündigen Sie den Arbeiter: Wenn Sie mit dem Arbeiter fertig sind, sollten Sie ihn beenden, um die Ressourcen freizugeben:
<code class="javascript">worker.terminate();</code>
Die herkömmliche JavaScript-Ausführung wird auf dem Haupt-Thread ausgeführt, was bedeutet, dass jede langjährige Aufgabe (z. B. komplexe Berechnungen, große Dateiverarbeitung, Netzwerkanforderungen) die Benutzeroberfläche blockiert, wodurch die Webseite für den Benutzer nicht mehr reagiert und frustrierend ist. Webarbeiter bieten mehrere wichtige Vorteile:
Nein, Web -Mitarbeiter können nicht direkt auf das DOM zugreifen. Dies ist ein entscheidendes Sicherheitsmerkmal, das potenzielle Konflikte verhindert und die Stabilität gewährleistet. Daten können jedoch zwischen dem Hauptfaden und einem Arbeiter unter Verwendung der postMessage()
-Methode ausgetauscht werden, wie im ersten Abschnitt gezeigt.
Mit der postMessage()
-Methode können Sie strukturierte Daten (z. B. Zahlen, Zeichenfolgen, Arrays, Objekte) zwischen dem Hauptfaden und dem Arbeiter senden. Sowohl der Haupt -Thread als auch der Arbeiter müssen auf das message
zuhören, um die Daten zu empfangen und zu verarbeiten. Denken Sie daran, dass nur strukturierte klonbare Daten übergeben werden können - dies bedeutet, dass die Daten kopiert und nicht durch Referenz geteilt werden. Um große Datensätze effizient zu übertragen, sollten Sie übertragbare Objekte verwenden.
Während Webarbeiter erhebliche Vorteile bieten, sollten mehrere Fallstricke vermieden werden:
error
und message
am Hauptfaden ist entscheidend für die Verwaltung der Lebenszyklen der Arbeitnehmer und zur Vermeidung von Lecks.Das obige ist der detaillierte Inhalt vonWie verwende ich die HTML5 -Webarbeiter -API für die Hintergrundverarbeitung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!