Regeneración Estática Incremental: Sitios Estáticos Potenciados

Rate this content
Bookmark

Los sitios estáticos son geniales. Son rápidos, económicos, seguros y fáciles de mantener. Pero generar activos estáticos es un proceso que lleva cada vez más tiempo a medida que nuestro sitio se vuelve más grande. Hablaremos sobre ISR, una característica que el framework Next.js nos ofrece para generar páginas estáticas en tiempo de ejecución.

FAQ

Una página web estática es aquella que se entrega al navegador del usuario tal como está almacenada, sin generar contenido dinámicamente. Está compuesta por archivos HTML, CSS y JavaScript.

Las páginas web estáticas son rápidas, económicas, fáciles de mantener, seguras, fáciles de escalar y estables, ya que no requieren cálculo ni procesamiento en cada solicitud.

La regeneración estática incremental es una función de Next.js que permite actualizar páginas estáticas en segundo plano para cada usuario, después de un tiempo preestablecido, sin tener que regenerar todo el sitio.

Las páginas web dinámicas generan parte de su contenido de forma dinámica en el servidor según ciertas condiciones o lógica, mientras que las páginas estáticas entregan el mismo contenido pregenerado a todos los usuarios.

Existen tres métodos principales: renderizado en el lado del servidor, donde el contenido se genera dinámicamente por el servidor; renderizado en el lado del cliente, donde el contenido se genera mediante JavaScript en el navegador; y la generación de sitios estáticos, donde el contenido se pregenera durante el tiempo de compilación.

Facundo se centra en Next.js, un marco de trabajo de React, para la creación de interfaces de usuario y la generación de sitios estáticos, así como páginas renderizadas en el lado del servidor.

La regeneración estática incremental permite actualizar páginas específicas sin necesidad de regenerar todo el sitio, lo que agiliza el proceso de compilación y mejora la eficiencia al manejar cambios frecuentes o contenido dinámico.

Facundo trabaja como ingeniero de relaciones con desarrolladores en Storyblock y es embajador de Auth0 y Prisma, además de experto en desarrollo de medios de Cloudinary.

Facundo Giuliani
Facundo Giuliani
22 min
25 Oct, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La regeneración estática incremental es una característica de Next.js que permite la generación estática por página sin reconstruir todo el sitio. Ayuda con los sistemas de gestión de contenido sin cabeza y persiste entre implementaciones. El ejemplo demuestra cómo funcionan juntos el renderizado del lado del servidor, la generación de sitios estáticos y la regeneración estática incremental. El editor visual en tiempo real permite ver los cambios de inmediato. Visita el sitio web de NetJS para una demostración de comercio electrónico y una plataforma de aprendizaje.

1. Introducción a la Regeneración Estática Incremental

Short description:

Hola a todos. Mi nombre es Facundo y hoy hablaremos sobre la regeneración estática incremental. Una página web estática se entrega al navegador del usuario exactamente como una tienda. Tenemos diferentes formas de generar contenido dinámico, como el renderizado en el lado del servidor y el renderizado en el lado del cliente. Las páginas web estáticas ofrecen beneficios como velocidad, rentabilidad, facilidad de mantenimiento, seguridad, escalabilidad y estabilidad.

Hola a todos. Mi nombre es Facundo y hoy hablaremos sobre la regeneración estática incremental.

Quiero presentarme. Como dije, mi nombre es Facundo Giuliani, soy de Buenos Aires, Argentina. Trabajo como ingeniero de relaciones con desarrolladores en Storyblock. También soy embajador de Auth0, embajador de Prisma y experto en desarrollo de medios de Cloudinary. Si quieres hablar sobre alguno de estos productos o cualquier otra cosa, puedes escribirme. Mi sitio web es fgiuliani.com y estoy en Twitter como Facundo Zurdo.

En primer lugar, quiero definir qué es una página web estática. Es una página web que se entrega al navegador del usuario exactamente como una tienda. Por lo tanto, podemos tener una página web conformada por un archivo HTML, un archivo CSS y un archivo JavaScript. Y eso se considerará una página estática. Eso no significa que el contenido de la página sea estático, pero estaremos entregando los mismos archivos a todos los usuarios que visiten nuestro sitio web. Y esa es la diferencia con una página web dinámica, donde es una página web en la que parte del contenido se genera dinámicamente cuando es necesario. Podemos generar contenido HTML sobre la marcha que entregaremos al usuario que visita nuestro sitio web dependiendo, no sé, de alguna condición o lógica que tengamos y que ejecutamos en nuestros servidores web. Tenemos diferentes formas de generar este contenido dinámico. Una de estas formas es utilizando el renderizado en el lado del servidor, donde el contenido HTML que se genera dinámicamente se realiza en el servidor web. Por lo tanto, el servidor web será el que generará el contenido HTML y entregará al usuario una página web que se verá como una página estática, pero en realidad, el contenido HTML o parte del contenido HTML se generó. Por otro lado, el renderizado en el lado del cliente es cuando el contenido HTML se renderiza directamente en el navegador utilizando JavaScript. Esto sería el caso de uso común para React, donde el contenido HTML que generamos o el marcado que generamos se basa en los componentes que tenemos en nuestra aplicación. Y cualquier otra aplicación de una sola página que podamos crear utilizando React u otros frameworks de JavaScript. Pero volvamos a la página web estática, porque si las analizamos, podemos ver que tienen diferentes beneficios que ofrecen las páginas web estáticas. Por ejemplo, las páginas web estáticas son rápidas porque simplemente entregamos archivos que se almacenan en un servidor web tal como están almacenados, por lo que no tenemos que hacer ninguna lógica para generar el contenido que queremos entregar. Son económicas porque simplemente almacenamos archivos como cualquier otro sistema de archivos. Son más fáciles de mantener porque estos archivos que creamos, no sé, probablemente escribimos el contenido en un editor de texto o algo así utilizando el método que queramos. Podemos mover un archivo de un lugar a otro, podemos implementar nuevas versiones de nuestro sitio web simplemente moviendo los nuevos archivos al servidor web, etc. Son seguras porque no ejecutamos ningún código en cada solicitud que recibimos, por lo que no tenemos que preocuparnos por la seguridad de ningún código que se ejecute porque no se está ejecutando ningún código. Es más fácil de escalar porque podemos agregar espacio de almacenamiento a nuestro servidor web y eso será suficiente para obtener más archivos y crear más páginas para nuestro sitio web. Y es estable porque no estamos realizando ningún cálculo o procesamiento en cada solicitud, simplemente entregamos archivos y eso será más estable para nuestro sitio web.

2. Introducción a la Generación de Sitios Estáticos

Short description:

Teniendo en cuenta estos beneficios de las páginas web estáticas que se crearon, apareció un nuevo concepto: la generación de sitios estáticos. Podemos generar activos estáticos en tiempo de compilación utilizando diferentes fuentes de datos, contenido, motores de plantillas, bases de datos, APIs y servicios de terceros. Next.js es un marco de trabajo de React que nos permite crear interfaces de usuario, páginas estáticas y páginas renderizadas en el lado del servidor. Podemos utilizar la generación de sitios estáticos para algunas páginas, mientras que utilizamos el renderizado en el lado del servidor o en el lado del cliente para páginas dinámicas. Next.js también proporciona rutas de API y actualización rápida en el entorno de desarrollo.

Teniendo en cuenta estos beneficios de las páginas web estáticas que se crearon, no sé, a principios de los años 90, por ejemplo, con los últimos marcos de trabajo y herramientas que se desarrollaron en los últimos años, apareció un nuevo concepto. El concepto de generación de sitios estáticos, que es compilar y renderizar una aplicación web en tiempo de compilación, generando activos estáticos como archivos HTML, JavaScript y CSS. Por lo tanto, tendremos diferentes fuentes de datos, contenido, motores de plantillas, bases de datos, APIs y servicios de terceros, y podemos generar la lógica que creará el contenido HTML para nuestro sitio web y utilizaremos un generador de sitios estáticos para ejecutar un proceso de compilación para nuestro proyecto y generar activos estáticos que serán nuestro sitio web. Estos activos estáticos que desplegaremos en el servidor web más tarde se generan cuando ejecutamos un proceso de compilación con el generador de sitios estáticos y todo el contenido dinámico que generamos utilizando los diferentes recursos de procesamiento y datos que tenemos se analizará y, digamos, se renderizará en tiempo de compilación. Por lo tanto, podemos estar seguros de que cuando los usuarios visiten nuestro sitio web, verán activos estáticos, páginas estáticas y quiero decir que estamos utilizando los beneficios de los sitios estáticos pero utilizando marcos de trabajo y herramientas de los últimos años. Hay varios generadores de sitios estáticos, hoy me centraré en Next.js, que es un marco de trabajo de React que nos permite crear interfaces de usuario, páginas estáticas y páginas renderizadas en el lado del servidor. Por lo tanto, podemos trabajar a nivel de página, digamos, podemos crear archivos JavaScript para cada página que tendremos en nuestro sitio web o podemos crear rutas dinámicas que generarán diferentes páginas que siguen ciertos criterios o ciertas URL, digamos, y podemos utilizar a nivel de página o diferenciando cada página, cómo queremos renderizar el contenido para ella. Por lo tanto, podemos tener generación de sitios estáticos para algunas de las páginas en nuestro sitio web, digamos que tenemos, por ejemplo, un blog, podemos utilizar la generación de sitios estáticos para generar la página de inicio de nuestro blog y luego una página por artículo o por publicación de blog, digamos, ya que el contenido que expondremos en nuestra publicación de blog siempre será el mismo y para todos los visitantes de nuestro sitio web, podemos generarlos de antemano y en tiempo de compilación, generar páginas estáticas y activos estáticos que desplegaremos en el servidor web y estarán disponibles para ser visitados por nuestros visitantes. Pero también podemos tener, no sé, páginas dinámicas en nuestra plataforma o nuestro sitio web y podemos utilizar el renderizado en el lado del servidor en esos casos o el renderizado en el lado del cliente dependiendo de lo que necesitemos. Quiero decir, el renderizado en el lado del cliente sería como el React regular, pero también podemos utilizar el renderizado en el lado del servidor, por lo que el servidor devuelve una página con un contenido HTML dinámico que se creó al vuelo pero en el servidor. También podemos tener rutas de API en Next.js para ejecutar código, como lo hacen las funciones sin servidor, por lo que pueden devolver servicios o consumir APIs utilizando rutas de API. Y una de las otras características interesantes que tiene Next.js es que tendremos una actualización rápida en el entorno de desarrollo. Por lo tanto, si estamos utilizando, por ejemplo, la generación de sitios estáticos, eso no significa que cada vez que apliquemos un cambio en el contenido o el código de nuestro sitio web, debamos ejecutar el proceso de compilación nuevamente. El código se cambiará, por ejemplo, y los cambios aparecerán automáticamente en nuestro navegador mientras trabajamos localmente. Por lo tanto, vemos que podemos crear sitios estáticos pero utilizando nuevas herramientas y diferentes fuentes de datos y motores de plantillas, etc., todo en tiempo de compilación. Nuevamente, volviendo al mismo ejemplo, podemos crear un sitio de blog con muchos artículos de blog renderizando todo el contenido que necesitamos de antemano y desplegando activos estáticos, pero esto tiene un problema porque, um, cuando comenzamos a crear más y más artículos y publicaciones de blog, etc., y nuestro sitio web se vuelve más grande, el tiempo que necesitaremos para generar

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Enrutamiento en React 18 y más allá
React Summit 2022React Summit 2022
20 min
Enrutamiento en React 18 y más allá
Top Content
Concurrent React y Server Components están cambiando la forma en que pensamos sobre el enrutamiento, la renderización y la obtención de datos en las aplicaciones web. Next.js recientemente compartió parte de su visión para ayudar a los desarrolladores a adoptar estas nuevas características de React y aprovechar los beneficios que desbloquean.En esta charla, exploraremos el pasado, presente y futuro del enrutamiento en las aplicaciones de front-end y discutiremos cómo las nuevas características en React y Next.js pueden ayudarnos a arquitectar aplicaciones más eficientes y con más funciones.
RedwoodJS: El marco de aplicación React Full-Stack de tus sueños
React Summit Remote Edition 2021React Summit Remote Edition 2021
43 min
RedwoodJS: El marco de aplicación React Full-Stack de tus sueños
Top Content
¿Cansado de reconstruir tu marco de trabajo web basado en React desde cero para cada nuevo proyecto? ¡Estás de suerte! RedwoodJS es un marco de aplicación web de pila completa (piensa en Rails pero para desarrolladores JS/TS) basado en React, Apollo GraphQL y Prisma 2. Nosotros hacemos el trabajo de integración pesada para que tú no tengas que hacerlo. También integramos de manera hermosa Jest y Storybook, y ofrecemos soluciones incorporadas para la obtención de datos declarativa, autenticación, pre-renderizado, registro, a11y y mucho más. Despliega en Netlify, Vercel, o vuelve a la vieja escuela en AWS o metal desnudo. En esta charla aprenderás sobre la arquitectura de RedwoodJS, verás las características principales en acción, y te irás con una sensación de asombro y admiración en tu corazón.
El Nuevo Enrutador de Aplicaciones de Next.js
React Summit 2023React Summit 2023
27 min
El Nuevo Enrutador de Aplicaciones de Next.js
Next.js 13.4 lanzó recientemente la versión estable del "Enrutador de Aplicaciones" - un cambio transformador para el núcleo del framework. En esta charla, compartiré por qué hicimos este cambio, los conceptos clave que debes conocer y por qué estoy emocionado por el futuro de React.
Una Guía Práctica para Migrar a Componentes de Servidor
React Advanced Conference 2023React Advanced Conference 2023
28 min
Una Guía Práctica para Migrar a Componentes de Servidor
Los Componentes de Servidor son la nueva gran cosa, pero hasta ahora gran parte del discurso a su alrededor ha sido abstracto. Cambiemos eso. Esta charla se centrará en el lado práctico de las cosas, proporcionando un mapa de ruta para navegar el viaje de migración. Comenzando desde una aplicación que utiliza el antiguo enrutador de páginas de Next.js y React Query, desglosaremos este viaje en un conjunto de pasos accionables e incrementales, deteniéndonos solo cuando tengamos algo que se pueda enviar y que sea claramente superior a lo que comenzamos. También discutiremos los próximos pasos y estrategias para adoptar gradualmente más aspectos de este paradigma transformador.
No sabes cómo hacer SSR
DevOps.js Conf 2024DevOps.js Conf 2024
23 min
No sabes cómo hacer SSR
Un recorrido por la evolución del SSR en los últimos doce años. Cubriremos cómo han cambiado las técnicas, los problemas típicos, las herramientas que puedes utilizar y diversas soluciones, todo desde el punto de vista de mi experiencia personal como consumidor y mantenedor.
Una Saga de Problemas de Renderizado Web
Vue.js London 2023Vue.js London 2023
28 min
Una Saga de Problemas de Renderizado Web
Esta charla analizará la evolución de los modos de renderizado web y de qué se trata el movimiento Jamstack. Construiremos un proyecto de demostración para mostrar cómo se pueden combinar un generador de sitios estáticos y un CMS sin cabeza para crear historias dinámicas y atractivas, manteniendo al mismo tiempo los beneficios de rendimiento y escalabilidad de un sitio estático.Aprenderás sobre las ventajas y limitaciones de cada modo de renderizado y obtendrás una comprensión más profunda de cómo utilizar Jamstack para construir experiencias de narración poderosas y dinámicas.

Workshops on related topic

Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
React Summit 2022React Summit 2022
173 min
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
Top Content
WorkshopFree
Kellen Mace
Kellen Mace
En esta masterclass, aprenderás cómo construir una aplicación Next.js que utiliza Apollo Client para obtener datos de un backend de WordPress sin cabeza y usarlo para renderizar las páginas de tu aplicación. Aprenderás cuándo debes considerar una arquitectura de WordPress sin cabeza, cómo convertir un backend de WordPress en un servidor GraphQL, cómo componer consultas usando el IDE GraphiQL, cómo colocar fragmentos GraphQL con tus componentes, y más.
Next.js 13: Estrategias de Obtención de Datos
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Estrategias de Obtención de Datos
Top Content
WorkshopFree
Alice De Mauro
Alice De Mauro
- Introducción- Prerrequisitos para la masterclass- Estrategias de obtención: fundamentos- Estrategias de obtención – práctica: API de obtención, caché (estática VS dinámica), revalidar, suspense (obtención de datos en paralelo)- Prueba tu construcción y sírvela en Vercel- Futuro: Componentes de servidor VS Componentes de cliente- Huevo de pascua de la masterclass (no relacionado con el tema, destacando la accesibilidad)- Conclusión
Crear un Sitio Web Editable Visualmente con Next.js Utilizando React Bricks, con Blog y Comercio Electrónico
React Summit 2023React Summit 2023
139 min
Crear un Sitio Web Editable Visualmente con Next.js Utilizando React Bricks, con Blog y Comercio Electrónico
WorkshopFree
Matteo Frana
Matteo Frana
- React Bricks: por qué lo construimos, qué es y cómo funciona- Crear una cuenta gratuita- Crear un nuevo proyecto con Next.js y Tailwind- Explorar la estructura de directorios- Anatomía de un Brick- Crear un nuevo Brick (Texto-Imagen)- Agregar un título y descripción con edición visual RichText- Agregar una imagen con edición visual- Agregar controles de barra lateral para editar props (padding y lado de la imagen)- Anidar Bricks usando el componente Repeater- Crear un brick de galería de imágenes- Publicar en Netlify o Vercel- Tipos de página y campos personalizados- Acceder a los valores meta de la página- Internacionalización- Cómo reutilizar contenido en varias páginas: Historias e Incrustaciones- Cómo crear un comercio electrónico con datos de productos de una base de datos externa y páginas de destino creadas visualmente en React Bricks- Funciones empresariales avanzadas: permisos flexibles, estructura bloqueada, componentes visuales personalizados
Construyendo Sitios Web Ultrarrápidos con Next.js y Sanity.io
React Summit 2023React Summit 2023
71 min
Construyendo Sitios Web Ultrarrápidos con Next.js y Sanity.io
WorkshopFree
Nancy Du
Nataliya Ioffe
2 authors
Únete a nosotros en un masterclass práctico donde te mostraremos cómo mejorar tus habilidades de React para construir un sitio web sin cabeza de alto rendimiento utilizando Next.js, Sanity y la arquitectura JAMstack. No se requiere conocimiento previo de Next.js o Sanity, lo que hace que este masterclass sea ideal para cualquier persona familiarizada con React que quiera aprender más sobre la construcción de sitios web dinámicos y receptivos.
En este masterclass, exploraremos cómo Next.js, un framework basado en React, se puede utilizar para construir un sitio web estático con renderizado del lado del servidor y enrutamiento dinámico. Aprenderás cómo utilizar Sanity como un CMS sin cabeza para gestionar el contenido de tu sitio web, crear plantillas de página personalizadas con Next.js, utilizar APIs para integrarte con el CMS y desplegar tu sitio web en producción con Vercel.
Al final de este masterclass, tendrás una comprensión sólida de cómo Next.js y Sanity.io pueden utilizarse juntos para crear un sitio web de alto rendimiento, escalable y flexible.
Masterclass de GraphQL en la Nube con Neo4j Aura, Next.js y Vercel
GraphQL Galaxy 2021GraphQL Galaxy 2021
161 min
Masterclass de GraphQL en la Nube con Neo4j Aura, Next.js y Vercel
WorkshopFree
William Lyon
William Lyon
En este masterclass construiremos y desplegaremos una aplicación de GraphQL de pila completa utilizando Next.js, Neo4j y Vercel. Utilizando un grafo de conocimiento de artículos de noticias, primero construiremos una API de GraphQL utilizando las rutas de API de Next.js y la Biblioteca de GraphQL de Neo4j. A continuación, nos enfocaremos en el front-end, explorando cómo utilizar GraphQL para la obtención de datos con una aplicación de Next.js. Por último, exploraremos cómo agregar personalización y recomendación de contenido en nuestra API de GraphQL para servir artículos relevantes a nuestros usuarios, luego desplegaremos nuestra aplicación en la nube utilizando Vercel y Neo4j Aura.

Tabla de contenidos:
- Visión general de Next.js y cómo empezar con Next.js
- Rutas de API con Next.js y construcción de una API de GraphQL
- Utilizando la Biblioteca de GraphQL de Neo4j
- Trabajando con Apollo Client y obtención de datos de GraphQL en Next.js
- Despliegue con Vercel y Neo4j Aura
Masterclass de alto rendimiento Next.js
React Summit 2022React Summit 2022
50 min
Masterclass de alto rendimiento Next.js
Workshop
Michele Riva
Michele Riva
Next.js es un marco convincente que facilita muchas tareas al proporcionar muchas soluciones listas para usar. Pero tan pronto como nuestra aplicación necesita escalar, es esencial mantener un alto rendimiento sin comprometer el mantenimiento y los costos del servidor. En este masterclass, veremos cómo analizar el rendimiento de Next.js, el uso de recursos, cómo escalarlo y cómo tomar las decisiones correctas al escribir la arquitectura de la aplicación.