Bird
Raised Fist0
Astroframework~5 mins

Why Astro excels at performance - Quick Recap

Choose your learning style10 modes available
Recall & Review
beginner
What is the main strategy Astro uses to improve website performance?
Astro sends mostly static HTML to the browser and loads JavaScript only when needed, reducing the amount of code the browser must process.
Click to reveal answer
intermediate
How does Astro's partial hydration help performance?
Partial hydration means only the interactive parts of a page load JavaScript, so the rest stays fast and light.
Click to reveal answer
beginner
Why does Astro avoid sending large JavaScript bundles by default?
Because large JavaScript bundles slow down page loading and increase CPU work, Astro keeps bundles small by default to speed up the site.
Click to reveal answer
intermediate
What role does Astro's server-side rendering (SSR) play in performance?
SSR generates HTML on the server before sending it to the browser, so pages appear faster and are better for SEO.
Click to reveal answer
intermediate
How does Astro's component model contribute to faster websites?
Astro lets you use components from many frameworks but compiles them into static HTML by default, reducing runtime code and speeding up loading.
Click to reveal answer
What does Astro send to the browser by default to improve speed?
AMostly static HTML with minimal JavaScript
BFull JavaScript bundles for all components
COnly CSS files
DRaw server code
What is 'partial hydration' in Astro?
ALoading the entire page as JavaScript
BLoading JavaScript only for interactive parts
CNot using JavaScript at all
DHydrating the whole page at once
How does server-side rendering (SSR) help performance in Astro?
ABy removing CSS from the page
BBy running all code in the browser
CBy generating HTML on the server before sending it
DBy delaying page load until JavaScript runs
Why does Astro keep JavaScript bundles small?
ATo increase server load
BTo make the code harder to read
CTo avoid using CSS
DTo reduce load time and CPU work in the browser
What is a key benefit of Astro's component model for performance?
AIt compiles components into static HTML by default
BIt requires all components to use React
CIt disables all interactivity
DIt loads all components as JavaScript
Explain how Astro's approach to JavaScript loading improves website performance.
Think about what the browser receives and when it runs JavaScript.
You got /4 concepts.
    Describe the role of server-side rendering in Astro and how it affects user experience.
    Consider what happens before the page reaches the browser.
    You got /4 concepts.

      Practice

      (1/5)
      1. Why does Astro send less code to the browser compared to other frameworks?
      easy
      A. Because it uses server-side rendering only without any client code
      B. Because it compiles code into a single large JavaScript file
      C. Because it only sends the HTML and CSS needed, not all JavaScript by default
      D. Because it disables CSS to reduce code size

      Solution

      1. Step 1: Understand Astro's code sending strategy

        Astro sends only the HTML and CSS needed for the page, avoiding unnecessary JavaScript by default.
      2. Step 2: Compare with other options

        Other frameworks often send all JavaScript upfront or disable CSS, which is not true for Astro.
      3. Final Answer:

        Because it only sends the HTML and CSS needed, not all JavaScript by default -> Option C
      4. Quick Check:

        Less code sent = only needed HTML/CSS sent [OK]
      Hint: Astro sends minimal code by default, mainly HTML and CSS [OK]
      Common Mistakes:
      • Thinking Astro sends all JavaScript upfront
      • Believing Astro disables CSS to reduce size
      • Confusing Astro with frameworks that bundle all code
      2. Which of the following is the correct way to load JavaScript only when needed in Astro?
      easy
      A. ...
      B.
      C.
      D. ...

      Solution

      1. Step 1: Identify Astro's client directives

        Astro uses client directives like client:load or client:visible to load JavaScript only when needed.
      2. Step 2: Match correct syntax

        <MyComponent client:visible>...</MyComponent> is the correct way to load JS when the component becomes visible.
      3. Final Answer:

        <MyComponent client:visible>...</MyComponent> -> Option A
      4. Quick Check:

        Use client directives to load JS only when needed [OK]
      Hint: Look for components with client:visible directive to defer JS [OK]
      Common Mistakes:
      • Using plain <script> tags without defer or client directives
      • Confusing import inside <script> as lazy loading
      • Using client:always which loads JS immediately
      3. Given this Astro component snippet:
      <MyWidget client:idle />

      What happens to the JavaScript for MyWidget?
      medium
      A. It loads only when the browser is idle
      B. It loads immediately when the page loads
      C. It never loads, only HTML is sent
      D. It loads only when the user clicks the widget

      Solution

      1. Step 1: Understand client:idle directive

        The client:idle directive tells Astro to load the JavaScript when the browser is idle, not immediately.
      2. Step 2: Compare other options

        Loading immediately is client:load, never loading is incorrect, and loading on click is client:click.
      3. Final Answer:

        It loads only when the browser is idle -> Option A
      4. Quick Check:

        client:idle means load JS when browser is idle [OK]
      Hint: client:idle defers JS until browser is free [OK]
      Common Mistakes:
      • Assuming client:idle loads JS immediately
      • Confusing client:idle with client:click
      • Thinking JS never loads with client:idle
      4. You wrote this Astro code:
      <MyComponent client:load />

      But the JavaScript never loads on the client. What is the likely problem?
      medium
      A. Astro does not support client-side JavaScript
      B. client:load is not a valid directive in Astro
      C. You need to add defer attribute to the script tag
      D. You forgot to import MyComponent in the Astro file

      Solution

      1. Step 1: Check if MyComponent is imported

        Astro requires components to be imported before usage; missing import means no JS bundle is generated.
      2. Step 2: Validate client:load directive

        client:load is a valid directive, so the issue is not the directive itself.
      3. Final Answer:

        You forgot to import MyComponent in the Astro file -> Option D
      4. Quick Check:

        Missing import means JS won't load [OK]
      Hint: Always import components before using client directives [OK]
      Common Mistakes:
      • Thinking client:load is invalid
      • Assuming Astro disables client JS
      • Adding defer attribute manually instead of using directives
      5. You want to build a blog with Astro that loads JavaScript only for interactive widgets when visible, and sends static HTML for the rest. Which approach best achieves this?
      hard
      A. Use <script> tags with defer for all widgets
      B. Use <MyWidget client:visible /> for widgets and normal Astro components for static content
      C. Disable JavaScript globally and use only server rendering
      D. Wrap all components in <AstroIsland client:load> to load JS immediately

      Solution

      1. Step 1: Identify how to load JS only when widgets are visible

        The client:visible directive loads JavaScript only when the widget scrolls into view, saving resources.
      2. Step 2: Use normal Astro components for static content

        Static content can be rendered as plain HTML without JavaScript, improving performance.
      3. Final Answer:

        Use <MyWidget client:visible /> for widgets and normal Astro components for static content -> Option B
      4. Quick Check:

        client:visible loads JS on visibility, static content stays HTML [OK]
      Hint: Use client:visible for widgets, normal components for static parts [OK]
      Common Mistakes:
      • Loading all JS immediately wastes resources
      • Disabling JS globally breaks interactivity
      • Using plain <script> tags misses Astro's lazy loading
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard