Автосохранение и синхронизация
Обновлено
На холсте Строфи нет кнопки «Сохранить» — любое действие сразу уходит на сервер через отдельный канал связи. Пока соединение работает, вы этого не замечаете. Но если связь пропадает или вкладку закрывают слишком быстро, часть правок может не долететь до сервера — в этом стоит разобраться заранее, а не в момент, когда что-то пропало.
Что считается правкой и когда она уходит на сервер
Правкой считается любое действие на холсте: создание и удаление блока, установка и разрыв соединения, перемещение блока, изменение текста или параметров блока. Каждое такое действие Строфи отправляет на сервер само, без вашего участия.
Скорость отправки зависит от типа действия. Создание, удаление и перемещение блоков, установка и разрыв соединения уходят на сервер практически сразу. Изменения текста и параметров блока Строфи ненадолго придерживает и отправляет через короткую паузу: так правки от быстрого набора текста объединяются в одну отправку вместо запроса на каждую букву. Дольше всего откладывается сохранение позиции и масштаба самого холста — это единственное, что можно немного не успеть сохранить без риска для содержимого проекта.
Что означают сообщения о синхронизации
Пока идёт активная отправка правок, рядом с названием проекта в верхней части редактора появляется небольшой индикатор загрузки; как только всё отправлено, он пропадает.
Отдельно Строфи короткими уведомлениями сообщает о ситуациях с соединением: о пропавшем подключении к интернету, о его восстановлении, об ошибке синхронизации во время попытки переподключиться и о том, что восстановить соединение не получилось. Это уведомления о процессе — сами по себе они не всегда означают, что что-то потеряно.
Отдельное сообщение — «Изменения не сохранились» — означает именно потерю: часть правок так и не попала на сервер после нескольких попыток. Оно держится на экране дольше остальных и не исчезает при следующей успешной отправке, чтобы вы точно его заметили.
Важная оговорка: это сообщение появляется не для всякой потери. Его показывают, когда не дошли действия со структурой проекта — создание, удаление, перемещение блока, соединение. Если же не дошли правки текста, параметров блока или положения холста, Строфи ограничивается обычным сообщением об ошибке соединения, которое ничем не отличается от промежуточных. Поэтому длинный сбой связи стоит считать поводом перезагрузить страницу и сверить проект, даже если сообщения о потере не было.
Что происходит при обрыве связи
Если пропадает интернет, Строфи не блокирует работу: вы продолжаете создавать и двигать блоки как обычно, а неотправленные правки копятся в памяти открытой вкладки. Как только соединение появляется снова, все накопленные правки уходят на сервер сами.
Если отправка не проходит по другой причине — например, временно недоступен сервер, а не интернет, — Строфи повторяет попытку с растущей паузой между повторами. Но попытки переподключиться не бесконечны: если связь долго не восстанавливается, Строфи в какой-то момент перестаёт пытаться сама, и для продолжения работы вкладку нужно перезагрузить.
Когда правки действительно теряются, и что делать
Очередь неотправленных правок существует только в памяти открытой вкладки — на диск она не сохраняется. Если закрыть вкладку, закрыть браузер или перезагрузить страницу до того, как правки ушли на сервер, они пропадают безвозвратно. При этом браузер не показывает привычное предупреждение «есть несохранённые изменения» — ничего не мешает закрыть вкладку в этот момент.
Второй случай потери — когда Строфи уже несколько раз пыталась отправить правки и не смогла: тогда она прекращает попытки и отбрасывает их. Часть недавних действий на сервере в этот момент нет, а на холсте они держатся только локально, пока вкладка открыта. О потере структурных действий Строфи сообщит отдельно, о потере правок текста и параметров — нет.
Если вы увидели это сообщение, самое надёжное — перезагрузить страницу и посмотреть, в каком состоянии проект на самом деле сохранён, а затем повторить действия, которых не хватает. Полагаться на то, что видно на холсте прямо сейчас, не стоит: экран показывает вашу локальную версию, а не обязательно то, что уже сохранено на сервере.
Работа в нескольких вкладках или на нескольких устройствах
Открыть один и тот же проект в двух вкладках или на двух устройствах одновременно можно — Строфи это не блокирует и не предупреждает, что проект уже открыт где-то ещё.
Правки холста — создание, перемещение, изменение блоков и соединений, — сделанные в одной вкладке, не появляются в реальном времени в другой: чтобы их увидеть, вторую вкладку нужно перезагрузить. Если один и тот же блок в это время редактируют в обоих местах, побеждает изменение, которое дошло до сервера последним, — Строфи не сравнивает версии и не предупреждает о конфликте.
Исключение — генерация: её запуск и результат видны сразу во всех открытых вкладках проекта, для этого работает отдельный канал реального времени. Если вы работаете над одним проектом в двух местах одновременно, безопаснее не редактировать один и тот же блок параллельно.
Переживают ли результаты генераций потерю правок холста
По большей части да. Как только генерация завершается, сервер записывает результат в проект сам, не дожидаясь вашей вкладки: этот шаг не зависит от очереди правок и переживает и потерю связи, и закрытие вкладки.
Полностью в обход очереди проходит не всё. Готовый файл сервер сохраняет самостоятельно, а вот доводка результата — облегчённая версия для холста, размеры и миниатюра — доезжает до проекта через вкладку, тем же путём, что и обычные правки. Такие данные Строфи относит к структурным, поэтому при неудаче вы увидите сообщение о несохранённых изменениях, а не тихую потерю; сам результат генерации при этом останется в проекте.
Под риском в такой ситуации остаются другие, не связанные с генерацией правки, которые вы вносили примерно в то же время: перемещение блоков, правка текста, изменение параметров.