We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Свойство onmessage  интерфейса Worker представляет собой обработчик EventHandler, который будет вызван когда произойдет событие message. Тип этого события MessageEvent и оно будет вызвано когда worker-объект получит сообщение из выполняемого им кода (т.е из метода DedicatedWorkerGlobalScope.postMessage .

Примечание: Данные события доступны в свойстве data события message.

Синтаксис

myWorker.onmessage = function(e) { ... }

Пример

Следующий пример кода показывает создание объекта Worker используя конструктор Worker(). События попадают в объект, когда значение внутри поля ввода формы first изменяется. Обработчик onmessage указан для обработки сообщений, которые приходят назад из кода объекта в текущий контекст выполнения.

var myWorker = new Worker("worker.js");

first.onchange = function() {
  myWorker.postMessage([first.value,second.value]);
  console.log('Сообщение, отправленное в worker-объект');
}

myWorker.onmessage = function(e) {
  result.textContent = e.data;
  console.log('Сообщение полученное из worker-объекта');
}

В скрипте worker.js, обработчик onmessage используется для обработки событий, полученных из главного скрипта:

onmessage = function(e) {
  console.log('Сообщение полученное из главного скрипта');
  var workerResult = 'Результат: ' + (e.data[0] * e.data[1]);
  console.log('Отправка сообщения назад в главный скрипт');
  postMessage(workerResult);
}

Посмотрите как в скрипте worker.js вызывается обработчик onmessage. В нем присутствует только глобальное свойство onmessage, потому что worker-объект фактически является областью видимости (DedicatedWorkerGlobalScope).

Для полного примера смотрите наш Basic dedicated worker example (run dedicated worker).

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

Спецификация Статус Комментарий
HTML Living Standard
Определение 'Worker.onmessage' в этой спецификации.
Живой стандарт Никаких изменений из Unknown.
Unknown
Определение 'Worker.onmessage' в этой спецификации.
Неизвестно Начальное определение.

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

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Функциональность Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Базовая поддержка 4 3.5 10.0 10.6 4
Функциональность Android Firefox Mobile (Gecko) Firefox OS (Gecko) IE Phone Opera Mobile Safari Mobile
Базовая поддержка 4.4 3.5 1.0.1 10.0 11.5 5.1

Смотрите также

Интерфейс Worker, которому принадлежит этот обработчик.

Метки документа и участники

Внесли вклад в эту страницу: vkorniyko
Обновлялась последний раз: vkorniyko,