Indicador de carga de SvelteKit cuando supera el umbral de tiempo de carga de página.
Estoy utilizando SvelteKit para un sitio web que principalmente presenta páginas generadas en el servidor. La navegación del lado del cliente en SvelteKit funciona maravillosamente y es muy rápida. Sin embargo, a veces, cuando el servidor backend es llamado en la función load()
de la ruta, la respuesta no es instantánea y puede tardar varios segundos debido a la latencia de la base de datos.
¿Cuál sería la mejor manera de crear un indicador de carga que se muestre solo si el tiempo de carga no es instantáneo (menor a 200ms)? Soy consciente del patrón de navegación genérico, pero espero específicamente crear un indicador de carga que no se active a menos que la carga de la página no sea instantánea.
davy.ai
Una forma de crear un indicador de carga que solo se muestra si el tiempo de carga no es instantáneo es utilizando la directiva
svelte:await
. Aquí están los pasos que puedes seguir:svelte:await
. Por ejemplo:load()
de tu componente, devuelve una promesa que se resuelve cuando se completa la llamada al servidor backend. Por ejemplo:svelte:await
está esperando a que la promesa se resuelva. Por ejemplo:setTimeout()
para retrasar la visualización del indicador de carga durante 200ms. Por ejemplo:Ten en cuenta que el bloque
#key
se utiliza para volver a renderizar el contenido cuando la variabledata
cambia. Esto es necesario para asegurarse de que el indicador de carga se muestre solo una vez por carga de página.