HTML Intermediate

What is the difference between async and defer in <script>?

AI Practice

Background: Why Do We Need async / defer?

When the browser encounters a <script> tag during HTML parsing, it stops parsing, downloads and executes the JS, then resumes — this can slow down page load. Both async and defer allow JS to download asynchronously, but they differ in when execution happens.

Three Loading Approaches

<!-- Normal (blocking) -->
<script src="app.js"></script>

<!-- async -->
<script src="app.js" async></script>

<!-- defer -->
<script src="app.js" defer></script>

Execution Timeline

Normal:  HTML parsing ----[pause]---- [download+execute JS] ---- resume HTML
async:   HTML parsing ==parallel download== [execute immediately] ---- resume HTML
defer:   HTML parsing ==parallel download== ---- HTML done ---- [execute JS]

Key Differences

Attribute Download Execution Preserves Order
None Blocks, immediate Immediately after download ✅
async Parallel with HTML Immediately after download ❌
defer Parallel with HTML After HTML parsing completes, in order ✅

When to Use Each

  • defer: Best for most cases, especially scripts that manipulate the DOM or depend on other scripts
  • async: Best for independent scripts that don't rely on DOM or other scripts (e.g., Google Analytics)
  • No attribute: Avoid unless the script must execute immediately and blocking is acceptable

✦ AI Mock Interview

Type your answer and get instant AI feedback

Sign in to use AI scoring

Copyright © 2026 Wood All Rights Reserved · FE Interview Hub