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 |