Utilizando transmisión para mejorar el rendimiento de la página
El SSR de Astro utiliza la transmisión de HTML para enviar cada componente al navegador cuando está disponible, lo que acelera la carga de la página. Para mejorar aún más el rendimiento de tu página, puedes construir estratégicamente tus componentes para optimizar su carga, evitando bloqueos durante la recuperación de datos.
El siguiente ejemplo de refactorización demuestra cómo mejorar el rendimiento de la página al trasladar las llamadas de recuperación de datos a otros componentes, sacándolas de un componente donde bloquean el rendimiento de la página.
La siguiente página realiza await
s para la recuperación de algunos datos en su frontmatter. Astro esperará a que todas las llamadas fetch
se resuelvan antes de enviar cualquier HTML al navegador.
Al trasladar las llamadas await
a componentes más pequeños, puedes aprovechar la transmisión de Astro. Al utilizar los siguientes componentes para realizar las recuperaciones de datos, Astro puede renderizar parte del HTML primero, como el título, y luego los párrafos cuando los datos estén listos.
La página de Astro que se muestra a continuación, utilizando estos componentes, puede renderizar partes de la página más pronto. Las etiquetas <head>
, <body>
, y <h1>
ya no están bloqueadas por las recuperaciones de datos. El servidor luego recuperará datos para RandomName
y RandomFact
en paralelo y transmitirá el HTML resultante al navegador.
Incluyendo Promesas directamente
Sección titulada Incluyendo Promesas directamenteTambién puedes incluir promesas directamente en la plantilla. En lugar de bloquear todo el componente, resolverá la promesa en paralelo y solo bloqueará el marcado que viene después de ella.
En este ejemplo, Un nombre
se renderizará mientras se están cargando personPromise
y factPromise
.
Una vez que personPromise
se haya resuelto, aparecerá Un hecho
y factPromise
se renderizará cuando haya terminado de cargarse.