Spec-Zone.ru › Web APIs

Работник

Примечание: Эта функция доступна в Веб-воркерах, за исключением Сервисных воркеров.

Интерфейс Worker из API веб-воркеров представляет собой фоновый процесс, который может быть создан с помощью скрипта, который может отправлять сообщения обратно своему создателю.

Создание работника выполняется путем вызова конструктора Worker("path/to/worker/script").

Работники могут сами порождать новые работники, при условии, что эти работники размещены в том же источнике, что и родительская страница.

Обратите внимание, что не все интерфейсы и функции доступны веб-воркерам. Подробности см. в Функциях и классах, доступных веб-воркерам.

EventTarget Работник

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

Worker()

Создаёт выделенный веб-воркер, который выполняет скрипт по указанному URL. Это также работает для Blob-URL.

Свойства экземпляра

Наследует свойства от своего родителя, 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API