Sobes.tech
Middle

Koja je razlika između tagova <script>, <script async> i <script defer>?

sobes.tech АИ

Одговор од АИ

  • <script>: Анализа HTML se zaustavlja, skripta se učitava i izvršava, zatim se analiza HTML nastavlja. Blokira renderovanje.
  • <script async>: Skripta se učitava asinhrono, paralelno sa analizom HTML. Čim se skripta učita, analiza HTML se prekida da bi se izvršila skripta, zatim se nastavlja. Redosled izvršavanja asinhronih skripti nije garantovan.
  • <script defer>: Skripta se učitava asinhrono, paralelno sa analizom HTML. Izvršenje se odlaže do potpunog završetka analize HTML i građenja DOM stabla. Redosled odloženih skripti se održava u skladu sa njihovim redosledom u dokumentu.

Evo tabele koja sumira razlike:

Atribut Učitavanje Izvršavanje Blokira analizu HTML Redosled skripti
nedostaje Sinhrono Odmah nakon učitavanja Da Garantovano
async Asinhrono Odmah nakon učitavanja (ako HTML još uvek analizira) Da (tokom izvršavanja) Nije garantovano
defer Asinhrono Nakon što se kompletno učita HTML i izgradi DOM Ne (osim u trenutku izvršavanja, ali posle HTML) Garantovano