Bird
Raised Fist0
Astroframework~3 mins

Why Prefetching and preloading in Astro? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

Discover how tiny tricks like prefetching can make websites feel lightning fast!

The Scenario

Imagine visiting a website where every time you click a link, you wait several seconds for the new page to load completely before seeing anything.

This wait breaks your flow and makes browsing frustrating.

The Problem

Manually loading pages only when clicked causes delays and a choppy experience.

Users feel the lag because the browser fetches resources too late, making the site feel slow and unresponsive.

The Solution

Prefetching and preloading let the browser fetch important resources ahead of time, so pages appear instantly when you navigate.

This creates a smooth, fast experience without waiting.

Before vs After
✗ Before
<!-- No prefetch -->
<a href="/about">About</a>
✓ After
<a href="/about" rel="prefetch">About</a>
What It Enables

It enables websites to feel instant and seamless, keeping users happy and engaged.

Real Life Example

When shopping online, prefetching product pages means you can jump from item to item without waiting for each page to load.

Key Takeaways

Manual loading causes slow, frustrating waits.

Prefetching and preloading fetch resources early.

This makes navigation feel instant and smooth.

Practice

(1/5)
1. What is the main purpose of prefetching in Astro?
easy
A. To remove unused resources from the page
B. To load resources immediately for current use
C. To load resources in the background before they are needed
D. To delay loading resources until user interaction

Solution

  1. Step 1: Understand prefetching concept

    Prefetching means loading resources quietly in the background before the user needs them.
  2. Step 2: Compare with other options

    Preloading loads immediately, delaying is opposite, and removing resources is unrelated.
  3. Final Answer:

    To load resources in the background before they are needed -> Option C
  4. Quick Check:

    Prefetching = background loading [OK]
Hint: Prefetching = load early but quietly in background [OK]
Common Mistakes:
  • Confusing prefetching with preloading
  • Thinking prefetching delays loading
  • Assuming prefetching removes resources
2. Which is the correct way to add a prefetch link in Astro's <head>?
easy
A.
B.
C.
D.

Solution

  1. Step 1: Identify correct rel attribute for prefetch

    Prefetch uses rel="prefetch" to hint browser to load resource in background.
  2. Step 2: Check other options

    Preload uses rel="preload", but question asks for prefetch. rel="fetch" is invalid.
  3. Final Answer:

    <link rel="prefetch" href="/script.js"> -> Option D
  4. Quick Check:

    Prefetch link uses rel="prefetch" [OK]
Hint: Prefetch link uses rel="prefetch" exactly [OK]
Common Mistakes:
  • Using preload instead of prefetch
  • Missing the rel attribute
  • Using invalid rel values like fetch
3. Given this Astro component snippet, what will happen?
<head>
  <link rel="preload" as="style" href="/styles.css" />
</head>
<body>
  <h1>Hello</h1>
</body>
medium
A. The styles.css file loads immediately to style the page quickly
B. The styles.css file loads in the background after page load
C. The styles.css file is ignored by the browser
D. The styles.css file loads only when user scrolls

Solution

  1. Step 1: Understand preload with as="style"

    Preload with as="style" tells browser to load CSS immediately for fast styling.
  2. Step 2: Compare with prefetch behavior

    Prefetch loads in background, but preload loads right away to speed up rendering.
  3. Final Answer:

    The styles.css file loads immediately to style the page quickly -> Option A
  4. Quick Check:

    Preload with as="style" = immediate CSS load [OK]
Hint: Preload with as="style" loads CSS immediately [OK]
Common Mistakes:
  • Confusing preload with prefetch
  • Thinking preload delays loading
  • Ignoring the as attribute importance
4. Identify the error in this Astro prefetch usage:
<head>
  <link rel="prefetch" as="script" href="/app.js" />
</head>
medium
A. Prefetch should not use the 'as' attribute
B. The href attribute is missing
C. rel="prefetch" is invalid in Astro
D. The link tag must be inside the body

Solution

  1. Step 1: Check prefetch attribute usage

    Prefetch links should not include the as attribute; it's only for preload.
  2. Step 2: Validate other attributes and placement

    The href is present, rel="prefetch" is valid, and link tags belong in head, not body.
  3. Final Answer:

    Prefetch should not use the 'as' attribute -> Option A
  4. Quick Check:

    Prefetch without 'as' attribute [OK]
Hint: Prefetch links never use 'as' attribute [OK]
Common Mistakes:
  • Adding 'as' attribute to prefetch
  • Placing link tags inside body
  • Confusing prefetch with preload
5. You want to optimize loading a large image that will be shown on the next page in Astro. Which combination is best?
hard
A. Use <link rel="preload" as="image" href="/large.jpg" /> on current page
B. Use <link rel="prefetch" href="/large.jpg" /> on current page and preload on next page
C. Use <link rel="prefetch" href="/large.jpg" as="image" /> on current page
D. Do not preload or prefetch; load image only when user clicks

Solution

  1. Step 1: Understand prefetch for next page resources

    Prefetch loads resources in background for future use, ideal for next page images.
  2. Step 2: Combine with preload on next page

    Preloading on next page ensures immediate display when user arrives, improving UX.
  3. Step 3: Check invalid options

    Preload on current page wastes bandwidth if image not shown now; 'as' attribute invalid with prefetch; delaying load hurts UX.
  4. Final Answer:

    Use <link rel="prefetch" href="/large.jpg" /> on current page and preload on next page -> Option B
  5. Quick Check:

    Prefetch now + preload later = best for next page image [OK]
Hint: Prefetch for next page, preload on arrival for speed [OK]
Common Mistakes:
  • Preloading large images too early wasting bandwidth
  • Adding 'as' attribute to prefetch links
  • Not prefetching resources needed soon
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