HTMLMedium
How do plain <script>, defer and async differ?
By FrontendPro Editorial Team Updated 8/7/2026
#html#performance#scripts
Answer
html
<script src="a.js"></script> <!-- blocks HTML parsing -->
<script src="b.js" defer></script> <!-- downloads in parallel, runs after parsing, in order -->
<script src="c.js" async></script> <!-- downloads in parallel, runs as soon as ready, no order -->
- Default: pauses the parser → slower first paint.
- defer: runs before
DOMContentLoadedand preserves document order → the sane default for app code. - async: for independent scripts (analytics); may run before the DOM is ready.
type="module"is deferred by default.
