Sobes.tech
Middle

¿Cómo podemos ayudar al navegador a prepararse para cargar recursos?

sobes.tech AI

Respuesta de la IA

Utilizar directivas de precarga: preconnect, dns-prefetch, preload, prefetch, prerender.

Directiva Descripción Ejemplo
preconnect Establece una conexión (búsqueda DNS, apretón de manos TCP, negociación TLS) con otra fuente de datos por adelantado. <link rel="preconnect" href="https://cdn.example.com">
dns-prefetch Realiza la resolución del nombre de dominio por adelantado. <link rel="dns-prefetch" href="//api.example.com">
preload Solicita recursos (JS, CSS, fuentes) con alta prioridad por adelantado, sin bloquear el renderizado. <link rel="preload" href="/styles.css" as="style">
prefetch Solicita recursos que probablemente serán necesarios en el futuro (por ejemplo, en la próxima página). <link rel="prefetch" href="/next_page.html">
prerender Renderiza la siguiente página en una pestaña oculta por adelantado. <link rel="prerender" href="/upcoming_page.html">

Usar el atributo async o defer en la etiqueta <script> para cargar y ejecutar scripts de forma asíncrona, sin bloquear el análisis del HTML:

<script src="script.js" async></script>
<script src="another-script.js" defer></script>

Usar el atributo loading="lazy" para imágenes y <iframe> para su carga diferida cuando entran en el área visible:

<img src="image.jpg" loading="lazy" alt="Imagen cargada perezosamente">

Optimizar imágenes (comprimir, usar formatos modernos como WebP), fuentes (subconjuntos, formatos WOFF/WOFF2) y otros recursos.

Minimizar y comprimir CSS, JavaScript y HTML.

Usar Service Worker para cachear recursos y garantizar acceso sin conexión.

Dividir el código JavaScript grande en partes más pequeñas (code splitting) y cargarlas bajo demanda.

Usar HTTP/2 y HTTP/3 para una multiplexación más eficiente y compresión de encabezados.

Establecer encabezados de caché adecuados (Cache-Control, Expires) en el servidor.

Usar <link rel="modulepreload"> para precargar módulos JavaScript ES.

<link rel="modulepreload" href="/dist/module.js">