Web Developmentpokročilý

Čo je Code Splitting?

Code splitting je technika rozdelenia JavaScript kódu aplikácie na menšie časti (chunky), ktoré sa načítavajú podľa potreby. Namiesto jedného obrovského súboru prehliadač stiahne len kód potrebný pre aktuálnu stránku. Výrazne zrýchľuje počiatočné načítanie aplikácie.

Definícia Code Splitting

Čo je code splitting

Code splitting (po slovensky rozdelenie kódu) je optimalizačná technika, pri ktorej sa JavaScript bundle aplikácie rozdelí na menšie, nezávislé časti nazývané chunky. Každý chunk obsahuje kód pre konkrétnu stránku, funkciu alebo komponent a načíta sa až keď ho používateľ skutočne potrebuje.

Ako code splitting funguje

Moderné bundlery ako Webpack, Rollup a Vite automaticky rozdeľujú kód na základe:

  • Dynamické importy — príkaz import() vytvorí nový chunk, ktorý sa načíta asynchrónne
  • Route-based splitting — každá stránka (route) sa stane samostatným chunkom
  • Vendor splitting — knižnice tretích strán (React, lodash) sa oddelia do spoločného chunka

Frameworky ako Next.js implementujú code splitting automaticky — každá stránka v adresári app/ sa stáva samostatným chunkom bez nutnosti manuálnej konfigurácie.

Výhody code splittingu

  • Rýchlejšie prvé načítanie — prehliadač parsuje a vykoná menší objem JavaScriptu
  • Efektívnejšie cachovanie — pri zmene jednej stránky sa invaliduje len jej chunk, nie celý bundle
  • Lepšie TTI — menej JavaScriptu na spracovanie znamená rýchlejšiu interaktivitu

Praktický príklad

Príklad: SaaS aplikácia pre správu projektov má administrátorský panel, dashboard a nastavenia.

Bez code splittingu by prehliadač stiahol jeden súbor bundle.js s veľkosťou 2,4 MB — obsahujúci kód pre všetky stránky vrátane administrátorského panela, ktorý väčšina používateľov nikdy nenavštívi.

Po implementácii code splittingu sa aplikácia rozdelí na chunky: dashboard.js (180 kB), settings.js (95 kB) a admin.js (340 kB). Bežný používateľ stiahne pri prihlásení len dashboard chunk — 92 % menej kódu oproti pôvodnému bundlu.

Často kladené otázky

Čo je code splitting a prečo ho potrebujem?

Code splitting je technika rozdelenia JavaScript kódu na menšie časti, ktoré sa načítavajú podľa potreby. Potrebujete ho, ak vaša aplikácia má veľký JavaScript bundle, ktorý spomaľuje počiatočné načítanie stránky.

Ako implementovať code splitting v React?

V React aplikácii môžete použiť React.lazy() spolu s komponentom Suspense pre lazy loading komponentov. Ak používate Next.js, code splitting funguje automaticky pre každú stránku a pre dynamické importy cez next/dynamic.

Aký je rozdiel medzi code splitting a tree shaking?

Code splitting rozdeľuje kód na menšie časti načítavané podľa potreby — všetok kód stále existuje, len sa nestiahne naraz. Tree shaking kompletne odstráni nepoužívaný kód z finálneho bundlu. Obe techniky sa dopĺňajú a bežne sa používajú spoločne.

Súvisiace pojmy

Tree Shaking

Tree shaking je optimalizačná technika, ktorá automaticky odstraňuje nepoužívaný kód z finálneho JavaScript bundlu. Bundler analyzuje importy a exporty modulov a vylúči časti kódu, ktoré sa nikde nevolajú. Výsledkom je menší súbor a rýchlejšie načítanie aplikácie.

Lazy Loading

Lazy loading je technika odloženého načítavania zdrojov, pri ktorej sa obrázky, videá alebo časti kódu načítajú až vtedy, keď ich používateľ skutočne potrebuje. Znižuje počiatočný objem dát a výrazne zrýchľuje prvé vykreslenie stránky. Prehliadače dnes podporujú natívny lazy loading cez atribút loading="lazy".

Minifikácia

Minifikácia je proces odstránenia nepotrebných znakov zo zdrojového kódu bez zmeny jeho funkčnosti. Odstraňujú sa medzery, zalomenia riadkov, komentáre a skracujú sa názvy premenných. Výsledkom je menší súbor, ktorý sa rýchlejšie stiahne a spracuje.

Prefetching

Prefetching je technika, ktorá prehliadaču naznačuje, aby na pozadí stiahol zdroje, ktoré bude používateľ pravdepodobne potrebovať v budúcnosti — typicky na ďalšej stránke. Má nízku prioritu a nezdržiava načítanie aktuálnej stránky. Používa sa element <link rel="prefetch">.

WebP

WebP je moderný obrazový formát vyvinutý spoločnosťou Google, ktorý ponúka o 25-35 % menšie súbory ako JPEG pri rovnakej vizuálnej kvalite. Podporuje stratovú aj bezstratovú kompresiu, priehľadnosť (alfa kanál) a animácie. Je podporovaný všetkými modernými prehliadačmi.

Potrebujete pomôcť s webom?

Napíšte mi a poradím vám s vaším projektom. Prvá konzultácia je zadarmo a nezáväzná.