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.
Конструкторы
Методы
Наследует методы своего родителя, EventTarget, а также реализует методы AbstractWorker.
Worker.postMessage()-
Отправляет сообщение — которое может являться
любымJavaScript объектом — во внутреннюю область видимости воркера. Worker.terminate()-
Немедленно завершает выполнение воркера. Не даёт воркеру возможности завершить выполняемые операции; просто сразу останавливается. Экземпляры ServiceWorker не поддерживают этот метод.
Пример
Представленный фрагмент кода показывает создание объекта Worker с помощью конструктора Worker(), а также его использование:
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> |
Совместимость с браузерами
Loading…
Смотрите также
- Using web workers
- Functions available to workers
- Другие типы воркеров:
SharedWorkerи ServiceWorker. - Non-standard, Gecko-specific workers:
ChromeWorker, used by extensions.