Spec-Zone.ru › Web APIs

ServiceWorkerGlobalScope: событие messageerror

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.

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

Событие messageerror интерфейса ServiceWorkerGlobalScope происходит при невозможности десериализации входящих сообщений.

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

Синтаксис

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

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

onmessageerror = (event) => {};

Тип события

Объект ExtendableMessageEvent. Наследуется от ExtendableEvent.

Событие ExtendableEvent ExtendableMessageEvent

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

Наследует свойства от родителя, ExtendableEvent.

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

Возвращает данные события. Они могут быть любого типа. Если событие отправлено в messageerror событии, свойство будет null.

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

Возвращает источник Client, отправивший сообщение.

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

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

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

Возвращает ссылку на объект Client, отправивший сообщение.

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

Возвращает массив объектов MessagePort, представляющих порты ассоциированного канала сообщений.

Примеры

В примере ниже страница получает доступ к объекту ServiceWorker через ServiceWorkerRegistration.active и затем вызывает его функцию postMessage().

// main.js
if (navigator.serviceWorker) {
  navigator.serviceWorker.register("service-worker.js");

  navigator.serviceWorker.addEventListener("message", (event) => {
    // event is a MessageEvent object
    console.log(`The service worker sent me a message: ${event.data}`);
  });

  navigator.serviceWorker.ready.then((registration) => {
    registration.active.postMessage("Hi service worker");
  });
}

Сервис-воркер может прослушивать ошибку десериализации сообщения, прослушивая событие messageerror:

// service-worker.js
self.addEventListener("messageerror", (event) => {
  // event is an ExtendableMessageEvent object
  console.error("Message deserialization failed");
});

В качестве альтернативы, скрипт может прослушивать ошибку десериализации сообщения, используя onmessageerror:

// service-worker.js
self.onmessageerror = (event) => {
  // event is an ExtendableMessageEvent object
  console.error("Message deserialization failed");
};

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

Спецификация
Сервис-воркеры
# eventdef-serviceworkerglobalscope-messageerror
Сервис-воркеры
# dom-serviceworkerglobalscope-onmessageerror

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
messageerror_event 81 81 65 68
11.1Несмотря на поддержку свойства onmessageerror, событие messageerror никогда не срабатывает. См. ошибку 272967.
81 65 58
11.3Несмотря на поддержку свойства onmessageerror, событие messageerror никогда не срабатывает. См. ошибку 272967.
13.0 81

См. также

  • message
  • ServiceWorker.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/ServiceWorkerGlobalScope/messageerror_event

Spec-Zone.ru

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