Precargar
Los tiempos de carga de las páginas juegan un papel importante en la usabilidad y el disfrute general de un sitio. La precarga opcional de Astro aporta los beneficios de las navegaciones de páginas casi instantáneas a su aplicación multipágina (MPA) a medida que sus visitantes interactúan con el sitio.
Habilitar la precarga
Puedes habilitar la precarga con la configuración prefetch
:
Un script de precarga se agregará a todas las páginas de tu sitio. Luego puedes agregar el atributo data-astro-prefetch
a cualquier enlace <a />
en tu sitio para optar por la precarga. Cuando pasa el cursor sobre el enlace, el script buscará la página en segundo plano.
Toma en cuenta que la precarga solo funciona para los enlaces dentro de tu sitio, y no para los enlaces externos.
Configuración de precarga
La configuración prefetch
también acepta un objeto de opciones para personalizar aún más la precarga.
Estrategias de precarga
Astro admite 3 estrategias de precarga para varios casos de uso:
hover
(por defecto): Precarga cuando pasas el cursor o te enfocas en el enlace.tap
: Precarga justo antes de hacer clic en el enlace.viewport
: Precarga cuando los enlaces entran en el viewport.
Puedes especificar una estrategia para un enlace individual pasándola al atributo data-astro-prefetch
:
Cada estrategia está ajustada para precargar solo cuando sea necesario y ahorrar el ancho de banda de tus usuarios. Por ejemplo:
- Si un visitante está usando el modo ahorro de datos o tiene una conexión lenta, la precarga volverá a la estrategia
tap
. - Desplazarse rápidamente sobre los enlaces no los precargará.
- Los enlaces que usan la estrategia
viewport
se precargan con una prioridad más baja para evitar obstruir la red.
Estrategia de precarga predeterminada
La estrategia de precarga predeterminada al agregar el atributo data-astro-prefetch
es hover
. Para cambiarlo, puedes configurar prefetch.defaultStrategy
en tu archivo astro.config.js
:
Precargar todos los enlaces de forma predeterminada
Si quieres precargar todos los enlaces, incluidos los que no tienen el atributo data-astro-prefetch
, puedes establecer prefetch.prefetchAll
en true
:
Puedes optar por no precargar los enlaces individuales estableciendo data-astro-prefetch="false"
:
La estrategia de precarga predeterminada para todos los enlaces se puede cambiar con prefetch.defaultStrategy
como se muestra en la sección Estrategia de precarga predeterminada.
Precarga programática
Como algunas navegaciones no siempre aparecen como enlaces <a />
, también puedes precargar programáticamente con la API prefetch()
del módulo astro:prefetch
:
Puedes configurar adicionalmente la prioridad de la precarga pasando la opción with
:
La API prefetch()
incluye el mismo modo de ahorro de datos y conexión lenta, por lo que solo precarga cuando sea necesario.
Para ignorar la detección de conexiones lentas, puedes utilizar la opción ignoreSlowConnection
:
Asegúrate de importar prefetch()
solo en scripts del lado del cliente, ya que depende de las API del navegador.
Usar con View Transitions
Cuando uses View Transitions en una página, la precarga también estará habilitada de forma predeterminada. Establece una configuración predeterminada de { prefetchAll: true }
que habilita la precarga para todos los enlaces en la página.
Puedes personalizar la configuración de precarga en astro.config.js
para anular la predeterminada. Por ejemplo:
Migrando desde @astrojs/prefetch
La integración @astrojs/prefetch
se ha eliminado en v3.5.0 y se eliminará por completo en el futuro. Utiliza las siguientes instrucciones para migrar a la precarga incorporada de Astro, que reemplaza esta integración.
-
Elimina la integración
@astrojs/prefetch
y habilita la configuraciónprefetch
enastro.config.js
: -
Convierte las opciones de configuración de
@astrojs/prefetch
:-
La integración obsoleta usaba la opción de configuración
selector
para especificar qué enlaces se deben precargar al ingresar al viewport.Agrega
data-astro-prefetch="viewport"
a estos enlaces individuales en su lugar: -
La integración obsoleta usaba la opción de configuración
intentSelector
para especificar qué enlaces se deben precargar al pasar el mouse o enfocarse en ellos.Agrega
data-astro-prefetch
odata-astro-prefetch="hover"
a estos enlaces individuales en su lugar: -
La opción
throttles
de@astrojs/prefetch
ya no es necesaria, ya que la nueva función de precarga programática programará y precargará automáticamente de forma óptima.
-