Middle
Care este diferența dintre etichetele <script>, <script async> și <script defer>?
sobes.tech AI
Răspuns de la AI
<script>: Parsarea HTML se oprește, scriptul se încarcă și se execută, apoi parsarea HTML continuă. Blochează randarea.<script async>: Scriptul se încarcă asincron, în paralel cu parsarea HTML. De îndată ce scriptul este încărcat, parsarea HTML este întreruptă pentru a executa scriptul, apoi continuă. Ordinea de execuție a scripturilor asincrone nu este garantată.<script defer>: Scriptul se încarcă asincron, în paralel cu parsarea HTML. Execuția este amânată până la finalizarea completă a parsării HTML și construcției DOM-ului. Ordinea scripturilor deferate este păstrată conform ordinii lor în document.
Iată un tabel care sumarizează diferențele:
| Atribut | Încărcare | Execuție | Blocarea parsării HTML | Ordinea scripturilor |
|---|---|---|---|---|
| absent | Sincronă | Imediat după încărcare | Da | Garantat |
async |
Asincronă | Imediat după încărcare (dacă HTML încă se analizează) | Da (în timpul execuției) | Nu garantat |
defer |
Asincronă | După încărcarea completă a HTML-ului și construcția DOM-ului | Nu (cu excepția momentului execuției, dar după HTML) | Garantat |