Contenido del curso
Haciendo tu proyecto más rápido
Consumiendo datos de manera eficiente
Escalabilidad y personalización
- 10

Internacionalización en Next.js sin librerías
11:18 min - 11

Internacionalización en Next.js con Traducciones Dinámicas
14:47 min - 12

Autenticación con middleware en Next.js
08:35 min - 13

Autenticación con cookies en Next.js
15:40 min - 14

LaunchDarkly en Next.js sin caché estático
20:50 min - 15

Manejo de errores con useActionState en Next.js
14:34 min - 16

Cómo integrar Sentry en Next.js
12:46 min
Características Adicionales y Herramientas
- 17

use cache en Next.js 15
17:27 min - 18

Seguridad en Server Actions y variables de entorno
08:35 min - 19

Seguridad de Cookies y Encriptación en Aplicaciones Next.js
16:12 min - 20

Optimización de Rendimiento en Next.js: Técnicas y Herramientas
17:16 min - 21

Despliegue de Aplicaciones Next.js con Vercel y Docker
06:25 min - 22

Desplegando Next.js en Fly.io con Docker
20:29 min - 23

Despliegue de Aplicaciones Next.js con Flyo y Docker
10:59 min - 24

Cómo Next.js redujo el FCP de 4.2 a 1.2s
01:58 min
Optimización del Consumo de Datos en Aplicaciones Web
Resumen
Los datos en las aplicaciones web son clave para la experiencia del usuario. Optimizar su consumo no solo mejora la velocidad, sino también protege los recursos del servidor. Exploraremos cómo consumir datos de forma secuencial, paralela y con preload, aplicándolo a un caso práctico con Next.js y marcadores de usuarios.
¿Qué implica el consumo secuencial de datos?
- Se realiza una solicitud tras otra, esperando la respuesta antes de continuar.
- Por ejemplo, en un sistema de marcadores:
- Se obtiene el autor a través de su
username. - Luego, se buscan los marcadores relacionados usando el
IDdel autor.
- Se obtiene el autor a través de su
- Aunque funcional, este enfoque puede ser lento, especialmente con grandes volúmenes de datos o servidores distribuidos globalmente.
Desventaja principal: incrementa el tiempo de espera del usuario, degradando la experiencia.
¿Cómo funciona el consumo paralelo con Promise.all?
-
Permite ejecutar múltiples solicitudes simultáneamente.
-
En lugar de esperar la respuesta del autor para buscar sus marcadores, ambas solicitudes se resuelven a la vez.
-
Ejemplo:
const [author, bookmarks] = await Promise.all([ getAuthorByUsername(username), getBookmarksByAuthorUsername(username), ]); -
Ventajas:
- Acelera la carga de datos.
- Ideal para optimizar recursos cuando el backend soporta funciones asincrónicas adecuadas.
Sin embargo, no siempre es viable modificar el backend para implementar esta solución.
¿Qué aporta el enfoque de preload?
-
Permite anticipar la carga de datos antes de que se necesiten.
-
Utilizando APIs como
voiden Next.js:void preloadBookmarksByAuthorId(authorId); -
Este método carga los marcadores antes de procesar otras lógicas de negocio, reduciendo significativamente los tiempos de espera.
-
Funciona mejor con
fetchde Next.js y su sistema de caché, ofreciendo cargas más rápidas y consistentes.
¿Cuándo usar cada enfoque?
- Secuencial: Úselo solo si no hay otra opción o si los datos son dependientes entre sí.
- Paralelo: Ideal cuando las solicitudes no tienen dependencia directa.
- Preload: Útil para mejorar el rendimiento percibido al anticipar recursos críticos.