MessagePort - передает асинхронные сообщения

class MessagePort

Наследник EventTarget

onmessage

Это свойство определяет обработчик событий «message».

События «message» генерируются в объекте MessagePort.

Они не всплывают, и для них не предусматривается действий по умолчанию.

Обратите внимание, что при установке этого свойства вызывается метод start(), который запускает механизм возбуждения событий «message».

close()

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

Последующие вызовы метода postMessage() не будут иметь никакого эффекта, и в будущем сообщения «message» приходить не будут.

postMessage(any message[, MessagePort[] ports])

Отправляет копию сообщения message через порт и передает его в форме события «message» порту, с которым соединeн данный порт.

Если указан аргумент ports, его значение также будет доставлено вместе с событием «message».

Аргумент message может иметь любое значение, совместимое с алгоритмом структурированного копирования.

start()

Запускает механизм возбуждения событий «message» в объекте MessagePort.

До вызова этого метода все данные, отправляемые через порт, будут сохраняться в буфере.

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

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

Если сценарий регистрирует обработчик посредством свойства onmessage, метод start() будет вызван неявно.