Кратко
- Первый публичный проект W3C от 5 января 2023 года описал асинхронное получение блокировок с именами для окон и работников, разделяющих хранилище. Рабочий проект от 24 сентября 2025 года сохранил цикл: запросить блокировку, выполнить задачу и освободить её после завершения.
- Исключительный режим оставляет одно имя за одним владельцем. Совместимые общие блокировки могут сосуществовать. Исключительный приём
stealспособен отобрать право у прежнего владельца, пока его программа ещё продолжает работу.
Две вкладки одной программы редко выглядят как источник аварии. Пользователь просто открыл документ в новом окне, а фоновый работник тем временем решил очистить локальную очередь. Каждая часть видит свой кусок состояния. Если обе одновременно меняют одну запись или отправляют одну синхронизацию, ошибка родится до разговора с сервером. Браузер уже держит участников рядом и может организовать очередь там, где возникает гонка.
Первый публичный рабочий проект W3C от 5 января 2023 года предложил асинхронно получать блокировку на именованный ресурс, удерживать её во время выполнения и отпускать после него. Окна и работники одной области хранения могут координироваться через менеджер блокировок. Имя выбирает сама программа для абстрактного ресурса. Если она назовёт задачу document-sync, браузер не начинает понимать документ — он лишь сводит у одной двери тех, кто произнёс одинаковое имя.
История публикаций W3C отмечает первый проект 2023 года и следующий рабочий проект сентября 2025-го. Текст от 24 сентября 2025 года сводит обычное использование к трём шагам: запросить, выполнить асинхронную задачу, освободить после её завершения. Примером служит редактор с одним документом в двух вкладках: локальная запись и синхронизация требуют согласования. Другой пример выделяет главную вкладку для обслуживания очереди; когда она закрывается или падает, ожидающая вкладка может получить роль.
У проходной два режима. Исключительный пропускает одного владельца выбранного имени. Общий позволяет нескольким совместимым владельцам войти вместе, но претендент на исключительный доступ ждёт своего отдельного хода. Это знакомый спор читателей с писателем, перенесённый в браузер. Программа решает, какие операции относятся к одному имени. Если две вкладки назовут одну и ту же работу по-разному, браузер устроит две разные очереди — и обе вкладки пройдут.
Пояснение из репозитория рабочей группы W3C показывает задачу внутри функции обратного вызова. Результат запроса следует за её результатом. Диагностический снимок позволяет увидеть занятые и ожидающие блокировки, однако сразу после чтения он может устареть. Там же показан старый тупик: одна задача держит A и ждёт B, вторая держит B и ждёт A. Диспетчер честно поддерживает обе очереди. Прохода всё равно нет.
Самая острая кнопка называется steal. Проект 2025 года позволяет новому запросу снять прежнюю блокировку того же имени и пройти перед ожидающими. Обещание освобождения старой блокировки получает AbortError, но уже запущенный обратный вызов в старой вкладке может продолжить работу. Новый владелец входит, пока прежний ещё двигает ящики. Программа должна заметить потерю права, остановить старую работу или отвергнуть её результат; иначе спасательная операция сама создаст наложение записей.
Действует эта диспетчерская среди исполнителей одного браузера, разделяющих область хранения. Иной профиль, приватная сессия и другое устройство ведут собственные списки. Четыре исходных документа описывают механизм и даты публикации проектов. Итог записи в базу или на сервер проверяется отдельно. Талон отвечает за вход; расписка о выполнении появляется после работы.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров





