Web Workers

Bases peut déporter les calculs de formules via RPC. Configurez notExecuteFormula: true sur le moteur du thread principal, puis enregistrez le plugin Bases distant et le moteur de calcul dans le Worker1.

Commencez par l’installation et les premiers pas. Ces extraits complètent la configuration existante. Enregistrez les plugins avant de créer ou charger du contenu ; modifiez les enregistrements existants sans les dupliquer.

Thread principal

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 })

Point d’entrée du 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.FR_FR })univer.registerPlugin(UniverLicensePlugin, { license: 'your license.txt' })univer.registerPlugin(UniverProFormulaEnginePlugin)univer.registerPlugin(UniverRemoteBasesPlugin)univer.registerPlugin(UniverRPCWorkerThreadPlugin)

Utilisez un Worker de type module et un fichier d’entrée séparé. Alignez les versions des packages des deux côtés. Le rendu et les interactions restent sur le thread principal.

Vues croisées et tableaux de bord

Pour les calculs croisés du tableau de bord, configurez notExecuteCalculation: true sur UniverBaseDashboardPlugin dans le thread principal et enregistrez UniverRemoteBaseDashboardPlugin dans le même Worker. Gardez les plugins UI sur le thread principal.

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. Un Web Worker exécute JavaScript hors du thread principal du navigateur et communique par messages. Il ne peut pas accéder directement au DOM : déplacer les calculs ne déplace pas l’interface de l’éditeur. ↩

Que pensez-vous de ce guide ?

© 2026 DreamNum Co., Ltd.