Совместный редактор «Черновик» на Yjs
Совместный редактор «Черновик» на Yjs — серия из 12 уроков для читателей, знакомых с JavaScript, DOM и Promise. Каждый урок продолжает конкретное состояние общего примера; имена комнаты и участников сохраняются.
Последовательность
- Документ Yjs и общий текст — Локальный Y.Doc с именованным Y.Text.
- Связывание Y.Text с текстовым полем — Изменение только затронутого диапазона и обработка composition.
- Транзакции и происхождение изменений — Групповая операция и origin для локального ввода.
- Двоичные обновления и слияние — Обмен update между двумя независимыми документами.
- Участники и awareness — Эфемерное состояние участников с отдельным жизненным циклом.
- Собственный локальный provider — WebSocket provider и отдельные каналы документа и присутствия.
- Повторное соединение и согласование состояния — Reconnect с state vector и индикацией server sync.
- Офлайн-черновик в IndexedDB — Локальная загрузка до разрешения ввода и подключения.
- Серверное сохранение и подтверждение записи — Двоичный снимок на сервере с ack после атомарной записи.
- Права комнаты и доверие к участникам — Проверка identity, Origin, роли и отказ в update для viewer.
- Ревизии и отмена своих изменений — Отдельный журнал ревизий и UndoManager по origin.
- Подготовка редактора к выпуску — Очистка ресурсов, описание протокола и границ выпуска.
Исходные состояния
Скачать архив исходников. В каталоге lesson-NN находится полное самостоятельное состояние; карта файлов и условия будущего локального запуска описаны в README. Установка, сборка и выполнение примеров не проводились. Статус всей серии — example_execution: not_run. Ожидаемые результаты в тексте условны.
Серия опубликована и включена в каталог.