Кратко
- В публичной дискуссии W3C 2013 года обсуждалась рассылка нескольким контекстам одного происхождения. В 2014 году к адресатам добавили воркеры; переписка 2015 года зафиксировала работу над реализацией.
- По действующему стандарту HTML браузер находит другие пригодные каналы с тем же именем и ключом хранения, сериализует данные и ставит доставку в очередь. Получатель выполняет свою часть работы сам.
Вкладка А знает, что пользователь вышел. Вкладка Б всё ещё показывает сохранённые материалы, а вкладка В приглашает менять настройки профиля. Три соседних стола, три сводки о присутствии одного человека. Можно заставить каждый стол постоянно звонить на сервер. Можно попросить того, кто услышал новость первым, разослать короткую записку по кабинету. Браузер и так держит все столы вместе; ему оставалось научиться быть курьером.
Открытое обсуждение W3C, начатое в 2013 году, показывает чертёж этой почты. Среди предложений — объект с именем канала и методом postMessage(), рассылающий событие другим слушателям того же происхождения и имени. В комментариях спорят о форме интерфейса. Главный практический выигрыш уже виден: вкладке не нужно помнить адрес каждого соседнего окна, чтобы отправить известие всем подписавшимся.
Почтовый обход расширился в заявке W3C от января 2014 года. Она потребовала участия воркеров; июньское обновление записало соответствующее изменение в работе над HTML. Фоновый работник может продолжать дело, пока окна открываются и закрываются. Когда он способен принимать сообщения, общий канал достигает и его.
Публичная переписка WHATWG в январе 2015 года обсуждала реализацию, направлявшуюся в Firefox Nightly, и ссылалась на спецификацию HTML. В октябрьском указателе рабочего проекта HTML 5.1 W3C BroadcastChannel перечислен среди интерфейсов со ссылкой на определение WHATWG. Идея уже лежала на столе у авторов стандарта и тех, кто писал браузерный код.
Современный стандарт HTML задаёт маршрут посыльного подробно. При отправке данные сериализуются. Браузер находит другие пригодные объекты с тем же именем канала и ключом хранения, исключает самого отправителя и ставит для остальных событие message в очередь. Документ окна должен оставаться полностью активным; для воркера тоже определено условие приёма. Другая секция хранилища — другой кабинет, даже если вывеска совпадает.
В самом стандарте приведён пример выхода из аккаунта: один таб сообщает об этом другому, а тот обновляет свой вид. Почта доставляет событие; приложение управляет сеансом и экраном. Так же можно сообщить о смене оформления или завершении задания, которое видно в нескольких окнах. Браузер отвечает за конверты, сайт — за смысл вложенных писем.
После работы канал закрывают. Стандарт напоминает, что объект с зарегистрированным слушателем может сохраняться в памяти, пока его не отпустят. Удобный курьер не должен бессрочно ждать на лестнице с пустой сумкой. Но сама задача наконец обрела ясное решение: если читатель вышел в одном окне, соседние могут узнать об этом сразу.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров





