Thanks to visit codestin.com
Credit goes to developer.mozilla.org

This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

Worker

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨июль 2015 г.⁩.

* Some parts of this feature may have varying levels of support.

Интерфейс Worker из Web Workers API является представителем фоновой задачи, которая легко может быть создана и может передавать сообщения обратно создателю. Создание worker - это вызов конструктора Worker() и задание скрипта, выполняемого в потоке worker.

Workers могут, в свою очередь, порождать новые workers, если эти workers расположены в одном каталоге с родительской страницей (Примечание: вложенные workers в настоящее время не поддерживаются в Blink). Кроме того, workers могут использовать XMLHttpRequest для network I/O, при условии, что атрибуты responseXML и channel XMLHttpRequest всегда возвращают null.

Не все интерфейсы и функции могут быть использованы в скрипте, ассоциированном с Worker.

В Firefox, если вы хотите использовать workers в расширениях и хотели бы иметь доступ к js-ctypes, вам нужно использовать объект ChromeWorker.

Свойства

Наследует свойства родителя, EventTarget, и поддерживает свойства из AbstractWorker.

Обработчики событий

AbstractWorker.onerror

EventListener вызываемый каждый раз, когда из воркера приходит ErrorEvent с типом error. Это событие унаследовано от AbstractWorker.

Worker.onmessage

EventListener вызываемый каждый раз, когда из воркера приходит MessageEvent с типом message — то есть когда сообщение было отправлено воркером в родительский документ с помощью DedicatedWorkerGlobalScope.postMessage. Сообщение передаётся в свойстве объекта события data.

Конструкторы

Worker()

Создаёт dedicated web worker, выполняющий скрипт, расположенный по указанному URL. Воркеры также могут быть созданы с использованием Blobs.

Методы

Наследует методы своего родителя, EventTarget, а также реализует методы AbstractWorker.

Worker.postMessage()

Отправляет сообщение — которое может являться любым JavaScript объектом — во внутреннюю область видимости воркера.

Worker.terminate()

Немедленно завершает выполнение воркера. Не даёт воркеру возможности завершить выполняемые операции; просто сразу останавливается. Экземпляры ServiceWorker не поддерживают этот метод.

Пример

Представленный фрагмент кода показывает создание объекта Worker с помощью конструктора Worker(), а также его использование:

js
var myWorker = new Worker("worker.js");

first.onchange = function () {
  myWorker.postMessage([first.value, second.value]);
  console.log("Message posted to worker");
};

For a full example, see ourBasic dedicated worker example (run dedicated worker).

Спецификации

Specification
HTML
# dedicated-workers-and-the-worker-interface

Совместимость с браузерами

Смотрите также