Režim defer tak zabrání zablokování stránky a skripty s defer se spustí vždy, když je DOM připraven, ale před událostí DOMContentLoaded
.
Událost DOMContentLoaded se vyvolá, když je původní dokument HTML kompletně načten a analyzován, aniž by se čekalo na dokončení načítání stylů, obrázků a dílčích rámců.
Skripty s odložením si zachovávají relativní pořadí stejně jako běžné skripty. Pokud tedy máme nejprve dlouhý skript a pak menší, čeká ten druhý.
Atribut defer
je však ignorován, pokud značka <script>
nemá src
.
Async
Atribut async znamená, že pomáhá skript načíst v „nezávislém“ režimu.
Prohlížeč načítá stránky bez čekání na načtení asynchronních skriptů. DOMContentLoaded a asynchronní skripty na sebe navzájem nečekají (pořadí „load-first“).
Ostatní skripty nečekají na async
skripty a async
skripty nečekají na ně. Asynchronní režim (stejně jako režim odložení) neblokuje stránku.
Asynchronní skripty jsou skvělé, když do stránky integrujeme nezávislý skript třetí strany: počítadla, reklamy, analytické nástroje a podobně, protože nejsou závislé na našich skriptech a naše skripty by na ně neměly čekat.
Dynamický
Skript můžeme přidat také dynamicky pomocí JavaScriptu: