# Web Workers

- Human documentation: [https://docs.univer.ai/es-ES/guides/docs/getting-started/worker](https://docs.univer.ai/es-ES/guides/docs/getting-started/worker)

- Agent Markdown: [https://docs.univer.ai/es-ES/guides/docs/getting-started/worker.md](https://docs.univer.ai/es-ES/guides/docs/getting-started/worker.md)

- Requested language: `es-ES`

- Content language: `es-ES`

- Documentation version: `1.2.0`

- Source: [docs/getting-started/worker.es-ES.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/docs/getting-started/worker.es-ES.mdx)

---

Docs puede calcular la maquetación en un Web Worker[^web-worker] con `UniverDocsLayoutWorkerPlugin`. Regístralo después del plugin principal de Docs. `workerFactory` crea un nuevo Worker para el servicio de maquetación.

Completa primero la [instalación y el uso básico](https://docs.univer.ai/es-ES/guides/docs/getting-started/installation.md). Estos fragmentos amplían la configuración existente. Registra los plugins antes de crear o cargar contenido; modifica los registros existentes sin duplicarlos.

## Hilo principal

```typescript title="main.ts"
import { UniverDocsLayoutWorkerPlugin } from '@univerjs/docs'

univer.registerPlugin(UniverDocsLayoutWorkerPlugin, {
  workerFactory: () => new Worker(new URL('./worker.ts', import.meta.url), { type: 'module' }),
})
```

## Entrada del Worker

```typescript title="worker.ts"
import { startDocsLayoutWorker } from '@univerjs/docs'

startDocsLayoutWorker()
```

Usa un Worker de tipo módulo y un archivo de entrada independiente. Mantén iguales las versiones de los paquetes en ambos lados. El renderizado y la interacción permanecen en el hilo principal.

[^web-worker]: Un Web Worker ejecuta JavaScript fuera del hilo principal del navegador y se comunica mediante mensajes. No puede acceder directamente al DOM; mover los cálculos no mueve la interfaz del editor.
