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
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
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.
import { UniverBaseDashboardPlugin } from '@univerjs-pro/bases-dashboard'univer.registerPlugin(UniverBaseDashboardPlugin, { notExecuteCalculation: true })import { UniverRemoteBaseDashboardPlugin } from '@univerjs-pro/bases-dashboard'univer.registerPlugin(UniverRemoteBaseDashboardPlugin)Footnotes
-
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 ?