Встречается на собеседованиях • сегодня

Как сделать локальное сообщение через Service Worker

Для отправки локального сообщения через Service Worker используйте postMessage. Пример:

  1. В основном скрипте:
javascript
navigator.serviceWorker.controller.postMessage({
  type: 'LOCAL_MSG',
  data: 'Hello from main thread'
});
  1. В Service Worker (sw.js):
javascript
self.addEventListener('message', (event) => {
  if (event.data.type === 'LOCAL_MSG') {
    console.log('Received:', event.data.data);
    // Можно отправить ответ обратно
    event.source.postMessage({ 
      response: 'Message received!' 
    });
  }
});
  1. Для получения ответа в основном скрипте:
javascript
navigator.serviceWorker.addEventListener('message', (event) => {
  console.log('Response from SW:', event.data.response);
});

Важно: Service Worker должен быть активен (navigator.serviceWorker.controller должен существовать). Для двусторонней связи можно использовать MessageChannel для более сложных сценариев.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы