Sobes.tech
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