Middle
Jaký je rozdíl mezi tagy <script>, <script async> a <script defer>?
sobes.tech AI
Odpověď od AI
<script>: Analýza HTML se zastaví, skript se načte a spustí, poté se analýza HTML obnoví. Blokuje vykreslování.<script async>: Skript se načte asynchronně, paralelně s analýzou HTML. Jakmile je skript načten, analýza HTML se přeruší, aby se skript spustil, a poté se pokračuje. Pořadí spuštění asynchronních skriptů není garantováno.<script defer>: Skript se načte asynchronně, paralelně s analýzou HTML. Spuštění je odloženo do úplného dokončení analýzy HTML a sestavení DOM. Pořadí odložených skriptů je zachováno podle jejich pořadí v dokumentu.
Zde je tabulka shrnující rozdíly:
| Atribut | Načítání | Spuštění | Blokuje analýzu HTML | Pořadí skriptů |
|---|---|---|---|---|
| chybí | Synchronous | Ihned po načtení | Ano | Garantováno |
async |
Asynchronous | Ihned po načtení (pokud se HTML stále analyzuje) | Ano (během spuštění) | Není garantováno |
defer |
Asynchronous | Po úplném načtení HTML a sestavení DOM | Ne (kromě při spuštění, ale po HTML) | Garantováno |