Работник
Примечание: Эта функция доступна в Веб-воркерах, за исключением Сервисных воркеров.
Интерфейс Worker из API веб-воркеров представляет собой фоновый процесс, который может быть создан с помощью скрипта, который может отправлять сообщения обратно своему создателю.
Создание работника выполняется путем вызова конструктора Worker("path/to/worker/script").
Работники могут сами порождать новые работники, при условии, что эти работники размещены в том же источнике, что и родительская страница.
Обратите внимание, что не все интерфейсы и функции доступны веб-воркерам. Подробности см. в Функциях и классах, доступных веб-воркерам.
Конструкторы
Свойства экземпляра
Наследует свойства от своего родителя, EventTarget.
Методы экземпляра
Наследует методы от своего родителя, EventTarget.
Worker.postMessage()-
Отправляет сообщение — содержащее любой JavaScript-объект — во внутренний контекст работника.
Worker.terminate()-
Немедленно завершает работу работника. Это не позволяет работнику завершить свои операции; он останавливается сразу. Экземпляры
ServiceWorkerне поддерживают этот метод.
События
error-
Срабатывает при возникновении ошибки в работнике.
message-
Срабатывает, когда родительский элемент работника получает сообщение от этого работника.
messageerror-
Срабатывает, когда объект
Workerполучает сообщение, которое не может быть десериализовано.
Пример
Следующий фрагмент кода создаёт объект Worker с помощью конструктора Worker(), а затем использует объект работника:
const myWorker = new Worker("/worker.js");
const first = document.querySelector("input#number1");
const second = document.querySelector("input#number2");
first.onchange = () => {
myWorker.postMessage([first.value, second.value]);
console.log("Message posted to worker");
};
Для полного примера см. наш Пример базового выделенного работника (запустить выделенного работника).
Спецификации
| Спецификация |
|---|
| HTML # dedicated-workers-and-the-worker-interface |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
Worker |
4 | 12 | 3.5 | 10.6 | 4 | 18 | 4 | 11 | 5 | 1.0 | 4.4 |
Worker |
2 | 12 | 3.5 | 10.6 | 4 | 18 | 4 | 11 | 5 | 1.0 | 4.4 |
error_event |
4 | 12 | 3.5 | 10.6 | 4 | 18 | 4 | 11 | 5 | 1.0 | 4.4 |
message_event |
4 | 12 | 3.5 | 10.6 | 4 | 18 | 4 | 11.5 | 5 | 1.0 | 4.4 |
messageerror_event |
Нет | 18–79 | 57 | Нет | 16.4 | Нет | 57 | Нет | 16.4 | Нет | Нет |
postMessage |
2 | 12 | 3.5 | 10.6 | 4 | 18 | 4 | 11 | 5 | 1.0 | 4.4 |
terminate |
2 | 12 | 3.5 | 10.6 | 4 | 18 | 4 | 11 | 5 | 1.0 | 4.4 |
worker_support |
69Не доступно в общих воркерах. См. ошибку 40695450. |
79Не доступно в общих воркерах. См. ошибку 40695450. |
34 | 56Не доступно в общих воркерах. См. ошибку 40695450. |
16.4Не доступно в общих воркерах. См. ошибку 265263. |
69Не доступно в общих воркерах. См. ошибку 40695450. |
34 | 48Не доступно в общих воркерах. См. ошибку 40695450. |
16.4Не доступно в общих воркерах. См. ошибку 265263. |
10.0Не доступно в общих воркерах. См. ошибку 40695450. |
69Не доступно в общих воркерах. См. ошибку 40695450. |
Поддержка различается для различных типов воркеров. Подробности см. на странице каждого типа воркеров.
Поведение ошибок воркеров с разными источниками
В ранних версиях спецификации загрузка скрипта воркера с другим источником вызывала SecurityError. В настоящее время вместо этого выбрасывается событие error.
См. также
- Использование веб-воркеров
- Функции и классы, доступные веб-воркерам
- Другие виды воркеров:
SharedWorkerи Сервисный работник. -
OffscreenCanvasинтерфейс
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Worker