Web Workers

Bases может перенести вычисление формул в Worker1 через RPC. Задайте notExecuteFormula: true движку в основном потоке и зарегистрируйте удалённый плагин Bases с вычислительным движком в Worker.

Сначала выполните установку и базовую настройку. Эти фрагменты дополняют существующую конфигурацию. Регистрируйте плагины до создания или загрузки содержимого; изменяйте уже имеющуюся регистрацию без дублирования.

Основной поток

TypeScript
import { UniverProFormulaEnginePlugin } from '@univerjs-pro/engine-formula'import { UniverRPCMainThreadPlugin } from '@univerjs/rpc'univer.registerPlugin(UniverRPCMainThreadPlugin, {  workerURL: new Worker(new URL('./worker.ts', import.meta.url), { type: 'module' }),})univer.registerPlugin(UniverProFormulaEnginePlugin, { notExecuteFormula: true })

Точка входа Worker

TypeScript
import { UniverRemoteBasesPlugin } from '@univerjs-pro/bases'import { UniverProFormulaEnginePlugin } from '@univerjs-pro/engine-formula'import { UniverLicensePlugin } from '@univerjs-pro/license'import { LocaleType, Univer } from '@univerjs/core'import { UniverRPCWorkerThreadPlugin } from '@univerjs/rpc'const univer = new Univer({ locale: LocaleType.RU_RU })univer.registerPlugin(UniverLicensePlugin, { license: 'your license.txt' })univer.registerPlugin(UniverProFormulaEnginePlugin)univer.registerPlugin(UniverRemoteBasesPlugin)univer.registerPlugin(UniverRPCWorkerThreadPlugin)

Используйте модульный Worker и отдельный файл точки входа. Версии пакетов в обоих потоках должны совпадать. Отрисовка и взаимодействие с пользователем остаются в основном потоке.

Сводные представления и панели

Для сводных вычислений панели задайте notExecuteCalculation: true плагину UniverBaseDashboardPlugin в основном потоке и зарегистрируйте UniverRemoteBaseDashboardPlugin в том же Worker. Плагины интерфейса остаются в основном потоке.

TypeScript
import { UniverBaseDashboardPlugin } from '@univerjs-pro/bases-dashboard'univer.registerPlugin(UniverBaseDashboardPlugin, { notExecuteCalculation: true })
TypeScript
import { UniverRemoteBaseDashboardPlugin } from '@univerjs-pro/bases-dashboard'univer.registerPlugin(UniverRemoteBaseDashboardPlugin)

Footnotes

  1. Web Worker выполняет JavaScript вне главного потока браузера и обменивается с ним сообщениями. Прямого доступа к DOM нет: перенос вычислений не переносит интерфейс редактора. ↩

Насколько полезно это руководство?

© 2026 DreamNum Co., Ltd.