División de código y carga diferida
Divida bundles grandes de JavaScript en fragmentos bajo demanda mediante importaciones dinámicas y división por rutas, para que los usuarios descarguen solo el código que realmente necesitan.
División de código y carga diferida es una lección gratuita de Web Performance Optimization & Lighthouse en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Web Performance Optimization & Lighthouse, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Web Performance Optimization & Lighthouse incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
The Monolithic Bundle Problem
Shipping all JavaScript in one bundle forces users to download code for pages they may never visit. Code splitting breaks the bundle into smaller chunks loaded only when needed.
Dynamic import()
The dynamic import() expression returns a promise and tells bundlers to create a separate chunk. The module loads on demand at runtime.
button.addEventListener('click', async () => {
const { renderChart } = await import('./chart.js');
renderChart();
});Route-Based Splitting
The most impactful split is per route: each page becomes its own chunk, so the initial load contains only the landing route.
const Dashboard = React.lazy(() => import('./pages/Dashboard'));Suspense Fallbacks
While a lazy chunk loads, show a fallback so the UI stays responsive. In React this is Suspense; other frameworks have equivalents.
<Suspense fallback={<Spinner />}>
<Dashboard />
</Suspense>Component-Level Splitting
Heavy widgets like rich text editors, maps, or charts can be split too, loading only when the user opens that feature rather than on first paint.
Vendor Splitting
Separating third-party libraries into a vendor chunk lets it cache independently. App code changes frequently; vendor code rarely does, so users re-download less.
Prefetching Chunks
Lazy loading can add a delay when the user navigates. Prefetch the chunk during idle time, for example on link hover, so it is ready before the click.
link.addEventListener('mouseenter', () => import('./pages/Settings'));Avoiding Over-Splitting
Too many tiny chunks create request overhead and waterfalls. Aim for meaningful boundaries (routes, big features), not splitting every small function.
Tree Shaking Synergy
Code splitting pairs with tree shaking: use ES module imports and import only what you need so dead code never enters any chunk.
import { debounce } from 'lodash-es'; // only debounce is bundledMeasuring the Result
Use a bundle analyzer to inspect chunk sizes and the Coverage tab in DevTools to find unused code shipped on initial load. Lighthouse flags large unused JS.
Strategy Summary
- Split by route first.
- Lazy-load heavy components.
- Separate vendor chunks for caching.
- Prefetch likely-next chunks during idle.
Quick Check
Which JavaScript feature tells bundlers to create a separate chunk loaded on demand?
Recap
You learned to shrink initial payload with code splitting: dynamic import(), route- and component-level lazy loading, vendor chunking, idle prefetching, and tree shaking. Split at meaningful boundaries and measure with a bundle analyzer.
Preguntas frecuentes
¿La lección «División de código y carga diferida» es gratis?
Sí — el texto completo de «División de código y carga diferida» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Web Performance Optimization & Lighthouse, actualiza a CoddyKit PRO. El curso de Web Performance Optimization & Lighthouse incluye 4 lecciones en total.
¿Qué aprenderé en «División de código y carga diferida»?
Divida bundles grandes de JavaScript en fragmentos bajo demanda mediante importaciones dinámicas y división por rutas, para que los usuarios descarguen solo el código que realmente necesitan. Practicas Web Performance Optimization & Lighthouse con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Web Performance Optimization & Lighthouse?
No se requiere experiencia previa. Web Performance Optimization & Lighthouse en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «División de código y carga diferida»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Web Performance Optimization & Lighthouse?
Sí. Cada lección de Web Performance Optimization & Lighthouse incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Reducción de la carga útil de JavaScript
- Estrategias eficientes de carga de scripts
- Web Workers y ejecución fuera del hilo principal
- División de código y carga diferida