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