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