Перейти к содержимому
FastOffice

Ядро в браузере через WebAssembly

Ядро работает на устройстве пользователя: как идёт обмен, что это даёт и какие ограничения нужно учесть.

Ядро считает на устройстве пользователя. Работы у вас здесь меньше, чем в остальных средах: ядро приезжает вместе со страницей, его не нужно ни устанавливать, ни обновлять, ни перезапускать после сбоя. Участников в схеме четыре:

  • Ваш сервер — отдаёт страницу, сборку и файл, выдаёт сеанс и права, принимает сохранённый результат.
  • Браузер или WebView — оболочка F1 и фоновый поток.
  • Ядро в WebAssembly — сеанс книги и вычисления живут в памяти браузера.
  • Ваш продукт — версии, аудит, маршруты согласования, уведомления.

Ядро под WebAssembly и модуль-мост к нему идут пакетами движка F1 — это отдельный артефакт поставки, см. Состав поставки. В установщике настольного приложения их нет: там нативный процессор, который в браузере не работает.

Набор операций тот же, что и в настольном приложении: сборка для браузера принимает те же запросы контракта и передаёт их тому же ядру. Урезанного подмножества нет — ограничения браузера касаются среды: памяти, потоков и времени первой загрузки.

Оболочка обращается к сеансу в WebAssembly, который помнит состояние книги между вызовами. Книга остаётся в памяти вкладки или фонового потока, а на ваш сервер файл уходит только при открытии и сохранении либо по отдельно согласованному событию.

Сильная сторона Цена / ограничение
Документ обрабатывается без передачи во внешнее облако. Память и процессор ограничены устройством и браузером.
Между действием пользователя и ядром почти нет задержки. Первая загрузка кода и открытие большой книги занимают время, которое надо заложить.
Одинаковое поведение с сетью и без неё. Векторные вычисления (SIMD) есть не в каждом браузере, а многопоточность включается только вместе с ними и только на сайте, изолированном по источнику двумя заголовками — COOP и COEP. Обычной сборке не нужно ни того, ни другого.
Ваш сервер проще: хранение, вход и версии. Долгие операции нужно выносить в фоновый поток, давать возможность их отменить и учитывать, что вкладку могут закрыть.

Ассистент документации

Ответ собран из документации и может быть неточным — сверяйтесь с источниками.