Summary
- Первый рабочий проект W3C о Web Workers вышел 23 апреля 2009 года. Страница могла запустить сценарий в отдельной параллельной среде и обмениваться с ним сообщениями.
- В примере проекта worker вычисляет простые числа и отправляет новые результаты странице. Она показывает их, продолжая обслуживать действия пользователя.
Кнопка на месте, надпись читается, указатель движется. Вы нажимаете — тишина. Повторяете — ещё тише. Спустя время страница вдруг вываливает ответы на накопившиеся действия. Похоже на учреждение, где единственный сотрудник бросил приём посетителей, чтобы лично пересчитать карандаши на складе. Работа идёт, но очередь снаружи об этом знает мало.
Первый проект Web Workers, опубликованный W3C 23 апреля 2009 года, предложил оставить приёмную открытой. Он описывал фоновые сценарии, работающие независимо от программ, которые обрабатывают клики и другие действия. В качестве демонстрации проект искал простые числа. Главный документ запускает worker, тот вычисляет очередное число и отправляет его обратно, а страница обновляет видимый результат. Счёт идёт в подсобке, посетителя по-прежнему встречают у окна.
Путь от задачи к ответу определён достаточно точно. Страница создаёт Worker, указывая URL файла со сценарием. Браузер выполняет его в отдельной параллельной среде. Стороны обмениваются данными через postMessage и обработчики сообщений. Worker занят расчётом, страница — отображением. Новая простая цифра не появляется сама собой: сообщение приходит в код страницы, который меняет текст на экране. Разделение даёт результату адрес и получателя.
Декабрьский проект 2009 года называл это работой, похожей на потоки исполнения, с сообщениями как средством координации. У такой почты есть смысл. Страница формулирует поручение, получает ответ и решает, относится ли он ещё к происходящему. Если человек за время расчёта выбрал другую задачу, старое число нельзя просто выкрикнуть поверх нового экрана. Место для этого решения остаётся у интерфейса.
Простые числа убирают лишние оправдания. Демонстрация не ждёт дальний сервер и не страдает от плохой связи. Длинная вычислительная петля отнимает время у того же места, где должны обрабатываться действия. После переноса в worker страница способна реагировать и показывать найденные числа по мере прибытия сообщений. Человек видит ход работы вместо красивой кнопки, ушедшей в неоплачиваемый отпуск.
Дополнительный исполнитель тоже требует ресурсов. Проект конца 2009 года предупреждал о времени запуска и памяти для каждого worker. В качестве нелепого плана он приводил запуск отдельного worker для каждого пикселя четырёхмегапиксельного изображения. Четыре миллиона сотрудников для четырёх миллионов точек — отличный способ заполнить офис и не закончить картинку. Работу следует делить на осмысленные части.
Позднее документы точнее описали виды исполнителей. Снимок Candidate Recommendation 2012 года различал выделенный и общий worker. Первый общается со своим создателем через подразумеваемый канал; второй может подключать несколько контекстов одного происхождения через порты. Рабочий проект 2015 года подробно рассказывал о создании Worker, onmessage, postMessage и явном MessagePort у общего worker. Даже в компьютере полезно знать, кому адресована служебная записка.
Эта граница отвечает за место выполнения работы. Другие браузерные механизмы устанавливают, какому окну или происхождению принадлежат сохранённые данные. На одной странице обе задачи могут встретиться: выбор человека где-то хранится, а тяжёлый расчёт идёт отдельно. Сообщение соединяет их. Worker знает вычисленный результат, интерфейс решает, как и когда его показать. Пользователь видит не устройство внутренних комнат, а своевременный ответ.
Хронология W3C ведёт текст от проекта 2009 года через этапы 2012 и 2015 годов. Первые простые числа остаются удачной иллюстрацией. Браузер может думать долго; от этого он не обязан прекращать разговор. В подсобке считают, у окна слушают, письма ходят между ними.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров





