Sobes.tech
Middle

¿Qué es el renderizado progresivo?

sobes.tech AI

Respuesta de la IA

El renderizado progresivo es una técnica de optimización de la velocidad de carga y visualización de páginas web, en la que el contenido se carga y muestra de manera progresiva, en lugar de hacerlo todo de una vez.

Sus principales ventajas:

  • Una renderización más rápida del contenido significativo inicial (First Meaningful Paint).
  • Mejor percepción de la velocidad de carga por parte del usuario.
  • Reducción del tiempo hasta la interactividad (Time to Interactive).

Las principales técnicas de renderizado progresivo incluyen:

  1. Carga diferida (Lazy Loading): Retrasar la carga de recursos no esenciales (como imágenes o videos) hasta que sean necesarios para el usuario (hasta que desplaza la página hasta ellos).
    <!-- Carga diferida de una imagen -->
    <img src="placeholder.png" data-src="real-image.jpg" alt="Ejemplo de imagen" loading="lazy">
    
  2. Renderizado en el lado del servidor (Server-Side Rendering - SSR): Generar la página HTML en el servidor y enviar el contenido ya renderizado al navegador.
    // Ejemplo de uso de un framework para SSR (por ejemplo, Next.js)
    // functions/api.js
    // export async function getServerSideProps(context) {
    //   // Obtener datos en el servidor
    //   const data = await fetchData();
    //   return {
    //     props: { data }, // Pasar datos al componente
    //   }
    // }
    //
    // function MyPage({ data }) {
    //   // Renderizar componente con datos
    //   return <div>{/* ... */}</div>
    // }
    
  3. Renderizado en el lado del cliente (Client-Side Rendering - CSR) con hidratación: El navegador recibe HTML y JavaScript mínimos. Luego, JavaScript carga los datos y renderiza completamente la página en el navegador. La hidratación es el proceso de adjuntar manejadores de eventos al contenido ya renderizado por SSR en el cliente.
  4. Transmisión en streaming de HTML (Streaming HTML): Enviar HTML en partes a medida que se genera en el servidor, permitiendo que el navegador comience a analizar y renderizar antes de que se cargue completamente el documento.
    <!-- Ejemplo de transmisión en streaming hipotética -->
    <html>
      <head>
        <title>Página en streaming</title>
        <link rel="stylesheet" href="styles.css">
      </head>
      <body>
        <!-- Parte del HTML enviada primero -->
        <h1>Título</h1>
        <script src="script.js" async></script>
        <!-- El resto del HTML puede enviarse más tarde -->
      </body>
    </html>
    
  5. CSS crítico / CSS en línea (Critical CSS / Inline Critical CSS): Incluir en línea estilos CSS necesarios para mostrar la parte visible de la página (Above the Fold), para acelerar el renderizado inicial. Los demás estilos se cargan de forma asíncrona.
Técnica Descripción Ventajas Desventajas
Carga diferida Carga retrasada de recursos fuera del área visible Carga rápida del contenido visible Puede requerir JavaScript para su implementación
SSR Renderizado en el servidor, envío del HTML listo Renderizado rápido del contenido inicial, amigable con SEO Aumenta la carga en el servidor
CSR con hidratación Renderizado inicial en el cliente con hidratación posterior del contenido SSR Aplicaciones dinámicas Carga prolongada y menos interactividad sin SSR
Transmisión en streaming de HTML Envío de HTML en partes Inicio rápido del análisis Depende de la implementación del servidor
CSS crítico Incluir estilos en línea para la parte visible Renderizado rápido de la parte visible Requiere herramientas para extraer CSS crítico

El renderizado progresivo es una combinación de estas y otras técnicas, orientada a mejorar la experiencia del usuario mediante la aceleración del renderizado de la página web.