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