0
0
Astroframework~10 mins

Why Islands architecture optimizes performance in Astro - Visual Breakdown

Choose your learning style9 modes available
Concept Flow - Why Islands architecture optimizes performance
Page Loads as Static HTML
Identify Interactive Islands
Load JS Only for Islands
Hydrate Islands Independently
User Interacts with Islands
Minimal JS, Fast Load, Smooth UX
The page loads mostly static HTML, then only small interactive parts (islands) load JavaScript and hydrate independently, reducing overall JS and speeding up performance.
Execution Sample
Astro
1. Render full page as static HTML
2. Mark interactive parts as islands
3. Load JS only for islands
4. Hydrate islands separately
5. User interacts with islands
This shows how the page loads static content first, then loads and activates only small interactive parts, improving speed.
Execution Table
StepActionJS LoadedHydration TargetPerformance Effect
1Render full page as static HTMLNoneNoneFast initial load
2Identify interactive islandsNoneMarked islandsPrepare for selective hydration
3Load JS only for islandsSmall JS bundlesIslands onlyReduced JS size
4Hydrate islands independentlyIslands hydratedEach island separatelyFaster interactivity
5User interacts with islandsMinimal JS runsActive islandsSmooth user experience
6Page fully interactiveOnly needed JS loadedAll islands hydratedOptimized performance
💡 All islands hydrated with minimal JS, page fully interactive with optimized performance
Variable Tracker
VariableStartAfter Step 2After Step 3After Step 4Final
JS LoadedNoneNoneSmall bundles for islandsIslands hydratedMinimal JS for all islands
Hydration TargetNoneIslands markedIslands onlyEach island separatelyAll islands hydrated
Page InteractivityStatic HTML onlyStatic + islands markedPartial interactivityIslands interactiveFull interactivity
Key Moments - 3 Insights
Why doesn't the whole page load JavaScript at once?
Because only the interactive islands load JS, reducing the total JS size and speeding up the page load, as shown in steps 3 and 4 of the execution_table.
How does hydrating islands independently improve performance?
Hydrating islands separately means smaller JS runs at a time, so the browser can quickly make parts interactive without waiting for the whole page, as seen in step 4.
What happens if an island is not marked correctly?
If an island is not marked, it won't load JS or hydrate, so it stays static and non-interactive, reducing functionality but keeping performance high.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, at which step does the page start loading JavaScript?
AStep 3
BStep 5
CStep 1
DStep 2
💡 Hint
Check the 'JS Loaded' column to see when JS bundles start loading.
According to variable_tracker, what is the state of 'Page Interactivity' after Step 3?
AStatic HTML only
BFull interactivity
CPartial interactivity
DIslands interactive
💡 Hint
Look at the 'Page Interactivity' row and the column 'After Step 3'.
If we marked no islands on the page, how would the 'JS Loaded' variable change?
AIt would load small JS bundles for islands
BIt would load no JS at all
CIt would load full JS for the whole page
DIt would load JS only after user interaction
💡 Hint
Refer to the 'JS Loaded' variable in variable_tracker and think what happens if no islands are marked.
Concept Snapshot
Islands architecture loads the page as mostly static HTML.
Only small interactive parts (islands) load JavaScript.
Each island hydrates independently.
This reduces total JS size and speeds up page load.
Users get fast, smooth interactivity with minimal JS overhead.
Full Transcript
Islands architecture improves performance by sending mostly static HTML to the browser first. Then, it identifies small interactive parts called islands. JavaScript is loaded only for these islands, not the whole page. Each island hydrates independently, meaning it becomes interactive on its own. This approach reduces the total JavaScript size the browser must load and run, leading to faster page loads and smoother user experience. The execution steps show rendering static HTML, marking islands, loading JS for islands, hydrating them, and finally full interactivity with minimal JS. Variables like JS loaded and page interactivity change step by step, showing how performance is optimized. Key points include why JS is not loaded all at once, how independent hydration helps, and what happens if islands are not marked. The visual quiz tests understanding of when JS loads, interactivity states, and effects of missing islands.