Middle
Aký je rozdiel medzi tagmi <script>, <script async> a <script defer>?
sobes.tech AI
Odpoveď od AI
<script>: Analýza HTML sa zastaví, skript sa načíta a vykoná, potom sa analýza HTML pokračuje. Blokuje vykresľovanie.<script async>: Skript sa načíta asynchrónne, paralelne s analýzou HTML. Hneď ako sa načíta, analýza HTML sa preruší na vykonanie skriptu, potom pokračuje. Poradie vykonávania asynchrónnych skriptov nie je garantované.<script defer>: Skript sa načíta asynchrónne, paralelne s analýzou HTML. Vykonanie je odložené do úplného dokončenia analýzy HTML a konštrukcie DOM. Poradie odložených skriptov sa zachováva podľa ich poradia v dokumente.
Tu je tabuľka, ktorá zhrňuje rozdiely:
| Atribút | Načítanie | Vykonanie | Blokuje analýzu HTML | Poradie skriptov |
|---|---|---|---|---|
| chýba | Synchronné | Ihneď po načítaní | Áno | Garantované |
async |
Asynchrónne | Ihneď po načítaní (ak HTML ešte analyzuje) | Áno (počas vykonávania) | Nie garantované |
defer |
Asynchrónne | Po úplnom načítaní HTML a konštrukcii DOM | Nie (okrem v čase vykonávania, ale po HTML) | Garantované |