Webarbeiter
Status | Lebensstandard |
---|---|
Jahr begann | 3. April 2009 |
Erstmals veröffentlicht | 3. April 2009 |
Organisation | |
Komitee | Waswg |
Redakteure | Ian Hickson |
Domain | |
Webseite |
|
A Webarbeiter, wie durch die definiert World Wide Web Konsortium (W3c) und die Web Hypertext Application Technology Arbeitsgruppe (Whatwg) ist a JavaScript Skript ausgeführt von an Html Seite, die in der ausgeführt wird Hintergrund, unabhängig von Skripten, die auch von derselben HTML -Seite ausgeführt wurden.[1] Webarbeiter können oft nutzen Multi-Core CPUs effektiver.[2]
Die W3C und Whatwg stellen Web-Mitarbeiter als langjährige Skripte vor, die nicht durch Skripte unterbrochen werden, die auf Klicks oder andere Benutzerinteraktionen reagieren. Wenn Sie solche Arbeitnehmer davon abhalten, durch Benutzeraktivitäten unterbrochen zu werden, sollten Webseiten gleichzeitig reaktionsschnell bleiben, wenn sie lange Aufgaben im Hintergrund ausführen.
Die Web -Worker -Spezifikation ist Teil der Html Lebensstandard.[1]
Überblick
Wie von Whatwg vorgesehen, sind Webarbeiter relativ schwergewicht und sind nicht in großer Zahl verwendet. Es wird erwartet, dass sie langlebig sind, mit hohen Start-Leistungskosten und hohen Speicherkosten pro Instanz.[1]
Webarbeiter laufen außerhalb des Kontextes der Skripte eines HTML -Dokuments. Folglich haben sie keinen Zugang zur Dom, sie können erleichtern gleichzeitig Ausführung von JavaScript -Programmen.
Merkmale
Webarbeiter interagieren mit dem Hauptdokument über Nachrichtenübergang. Der folgende Code erstellt einen Arbeiter, der das JavaScript in der angegebenen Datei ausführt.
var Arbeiter = Neu Arbeiter("Worker_Script.js");
Um eine Nachricht an den Arbeiter zu senden, die POST-Meldung
Die Methode des Worker -Objekts wird wie unten gezeigt verwendet.
Arbeiter.POST-Meldung("Hallo Welt!");
Das OnMessage
Immobilien verwendet einen Event -Handler, um Informationen von einem Arbeitnehmer abzurufen.
Arbeiter.OnMessage = Funktion(Veranstaltung) { Alarm("Empfangene Nachricht" + Veranstaltung.Daten); etwas tun(); } Funktion etwas tun() { //arbeite Arbeiter.POST-Meldung("Arbeit erledigt!"); } Arbeiter.kündigen();
Sobald ein Arbeiter gekündigt ist, wird der Umfang und die variable Referenz nicht definiert. Zu diesem Zeitpunkt muss bei Bedarf ein neuer Arbeiter erstellt werden.
Beispiel
Die einfachste Verwendung von Web Worten besteht darin, eine rechnerisch teure Aufgabe auszuführen, ohne die Benutzeroberfläche zu unterbrechen.
In diesem Beispiel erzeugt das Hauptdokument einen Webarbeiter zum Berechnen Primzahlenund zeigt schrittweise die zuletzt gefundene Primzahl an.
Die Hauptseite lautet wie folgt:
<html> <Kopf> <Titel>Beispiel für Arbeiter: One-Core-BerechnungTitel> Kopf> <Karosserie> <p>Die bisherige höchste Primzahl ist: <Ausgang Ich würde="Ergebnis"> </Ausgang> </p> <Skript> var Arbeiter = Neu Arbeiter('Worker.js' '); Arbeiter.OnMessage = Funktion (Veranstaltung) { dokumentieren.GetElementById('Ergebnis').Textinhalt = Veranstaltung.Daten; }; Skript> Karosserie> html>
Das Arbeiter()
Der Konstruktoraufruf erstellt einen Webarbeiter und gibt a zurück Arbeiter
Objekt, das diesen Webarbeiter darstellt, der verwendet wird, um mit dem Webarbeiter zu kommunizieren. Das Objekt ist OnMessage
Mit dem Event -Handler können der Code Nachrichten vom Web Worker empfangen.
Der Webarbeiter selbst ist wie folgt:
var n = 1; var end_value = 10**7; Suche: während (n <= end_value) { n++; zum (var i = 2; i <= Mathematik.sqrt(n); i++) wenn (n % i == 0) fortsetzen Suche; // fand eine Prime! POST-Meldung(n); }
So senden Sie eine Nachricht an die Seite zurück, die POST-Meldung()
Die Methode wird verwendet, um eine Nachricht zu veröffentlichen, wenn eine Primzahl gefunden wird.[1]
Die Unterstützung
Wenn der Browser Web -Mitarbeiter unterstützt, ist im globalen Fensterobjekt eine Worker -Eigenschaft verfügbar.[3] Das Arbeitereigentum wird nicht definiert, wenn die Browser unterstützt es nicht.
Die folgenden Beispiele für den Web Worker -Support in einem Browser prüfen
Funktion Browserupportswebworkers() { Rückkehr Art der Fenster.Arbeiter === "Funktion"; }
Webarbeiter werden derzeit von unterstützt von Chrom, Oper, Rand, Internet Explorer (Version 10), Mozilla Feuerfuchs, und Safari.[4][5][6] Mobile Safari für iOS hat Webarbeiter seit iOS 5 unterstützt. Die Android Browser unterstützte zuerst Webarbeiter in Android 2.1, aber die Unterstützung wurde in Android -Versionen 2.2–4,3 entfernt, bevor er in Android 4.4 wiederhergestellt wurde.[7][8]
Verweise
- ^ a b c d Webarbeiter, Waswg, abgerufen 3. Juni 2010
- ^ "HTML Living Standard". Html.spec.whatwg.org. 30. Januar 2017. Abgerufen 31. Januar 2017.
- ^ "Html5 up und rennen" Mark Pilgrim. O'Reilly/Google Press. August 2010
- ^ "Einführung html5", Lawson, B. und Sharp, R., 2011.
- ^ "HTML5 und CSS3" Brian P. Hogan. Die pragmatischen Programmierer, LLC 2010.
- ^ "Kann ich ... Webarbeiter verwenden". caniuse.com. Abgerufen 30. September 2019.
- ^ "Archivierte Kopie". Archiviert von das Original am 19. Oktober 2013. Abgerufen 10. Juli 2011.
{{}}
: CS1 Wartung: Archiviertes Kopie als Titel (Link) - ^ "Kann ich ... Supporttabellen für HTML5, CSS3 usw. verwenden". caniuse.com. Abgerufen 10. Juni 2017.
Externe Links
- Webarbeiter - W3C
- Webarbeiter - Whatwg
- Verwenden von Webarbeitern - Mozilla Developer Network