intermediate

BroadcastChannel

Координируйте same-origin вкладки и окна через message channels для logout, инвалидации кэша и совместной работы.

BroadcastChannel даёт простой same-origin обмен между вкладками, окнами, фреймами и workers. Полезен для logout, инвалидации кэша, синхронизации темы и лёгкой координации. Сообщения не персистентны и не пересекают origins — критичные сценарии требуют серверной истины или хранилища.

					const channel = new BroadcastChannel('session');
channel.postMessage({ type: 'logout' });
channel.onmessage = (event) => {
  if (event.data.type === 'logout') clearClientState();
};
				

Закрывайте каналы при уничтожении контекста. Не шлите секреты и крупные payload — слушает любой same-origin script.

На интервью: уведомление между вкладками vs надёжная распределённая синхронизация состояния.

Типовые ошибки: очереди на BroadcastChannel теряются при закрытии контекста; чувствительные данные всё равно на клиенте.

Компромисс: удобство против контроля — выбирайте механизм под вашу связность и бюджет производительности.

Чеклист:

  • Только same-origin координация.
  • Маленькие версионированные сообщения.
  • close при teardown.
  • Серверная истина для критичного состояния.