Spec-Zone.ru › Web APIs

Worker: событие сообщения

Базовая поддержка Широко доступно

Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

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

Событие message срабатывает в объекте Worker, когда родительский элемент получает сообщение от своего воркера (т.е. когда воркер отправляет сообщение с помощью DedicatedWorkerGlobalScope.postMessage()).

Это событие не может быть отменено и не распространяется.

Синтаксис

Используйте имя события в методах, таких как addEventListener(), или установите свойство обработчика событий.

addEventListener("message", (event) => {});

onmessage = (event) => {};

Тип события

Объект MessageEvent. Наследует от Event.

Событие MessageEvent

Свойства события

Этот интерфейс также наследует свойства от своего родителя, Event.

MessageEvent.data Только для чтения

Данные, отправленные отправителем сообщения.

MessageEvent.origin Только для чтения

Строка, представляющая происхождение отправителя сообщения.

MessageEvent.lastEventId Только для чтения

Строка, представляющая уникальный идентификатор события.

MessageEvent.source Только для чтения

Объект MessageEventSource (который может быть WindowProxy, MessagePort или ServiceWorker), представляющий отправителя сообщения.

MessageEvent.ports Только для чтения

Массив объектов MessagePort, представляющих порты, связанные с каналом, через который отправляется сообщение (если это уместно, например, при обмене сообщениями через канал или при отправке сообщения в общий воркер).

Примеры

Этот код создаёт новый воркер и прослушивает сообщения от него с помощью addEventListener():

const worker = new Worker("static/scripts/worker.js");

worker.addEventListener("message", (event) => {
  console.log(`Received message from worker: ${event.data}`);
});

В качестве альтернативы, можно прослушивать с помощью свойства обработчика события onmessage:

const worker = new Worker("static/scripts/worker.js");

worker.onmessage = (event) => {
  console.log(`Received message from worker: ${event.data}`);
};

Воркер отправляет сообщения с помощью self.postMessage():

// static/scripts/worker.js

self.postMessage("I'm alive!");

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

Спецификация
HTML
# event-message

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
message_event 4 12 3.5 10.6 4 18 4 11.5 5 1.0 4.4

См. также

  • Связанные события: messageerror.
  • DedicatedWorkerGlobalScope.postMessage().

© 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/message_event

Spec-Zone.ru

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