Script Loading Strategies
Category: htmlAn overview of script loading strategies in HTML.
Script Elements & Loading Strategies
<!-- Classic script (blocking) -->
<script src="app.js"></script>
<!-- Async script (non-blocking, executes when ready) -->
<script src="analytics.js" async></script>
<!-- Deferred script (non-blocking, executes after DOM) -->
<script src="app.js" defer></script>
<!-- ES Module -->
<script type="module" src="app.js"></script>
<!-- Fallback for legacy browsers -->
<script type="module" src="modern.js"></script>
<script nomodule src="legacy.js"></script>
<!-- Inline module -->
<script type="module">
import { func } from './module.js';
func();
</script>
<!-- Import map -->
<script type="importmap">
{
"imports": {
"lodash": "https://cdn.jsdelivr.net/npm/lodash@4.17.21/+esm"
}
}
</script>
<!-- Subresource Integrity (SRI) -->
<script
src="https://cdn.example.com/library.js"
integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/ux..."
crossorigin="anonymous"
></script>
s
Script Attributes
async– Non-blocking, executes ASAPdefer– Non-blocking, executes after DOM parsingtype="module"– ES Modulenomodule– Fallback for older browsersintegrity– SRI hash for securitycrossorigin– CORS mode ("anonymous","use-credentials")referrerpolicy– Referrer policyfetchpriority– Loading priority ("high","low","auto")