Sobes.tech
Middle

Qual è la differenza tra i tag <script>, <script async> e <script defer>?

sobes.tech AI

Risposta dell'AI

  • <script>: L’analisi HTML si interrompe, lo script viene caricato ed eseguito, poi l’analisi HTML riprende. Blocca il rendering.
  • <script async>: Lo script viene caricato in modo asincrono, in parallelo con l’analisi HTML. Appena lo script è caricato, l’analisi HTML viene interrotta per eseguire lo script, poi riprende. L’ordine di esecuzione degli script asincroni non è garantito.
  • <script defer>: Lo script viene caricato in modo asincrono, in parallelo con l’analisi HTML. L’esecuzione viene posticipata fino al completamento dell’analisi HTML e della costruzione del DOM. L’ordine di esecuzione degli script differiti viene mantenuto secondo l’ordine nel documento.

Ecco una tabella riassuntiva delle differenze:

Attributo Caricamento Esecuzione Blocca l’analisi HTML Ordine degli script
assente Sincrono Immediatamente dopo il caricamento Garantito
async Asincrono Immediatamente dopo il caricamento (se l’HTML è ancora in analisi) Sì (durante l’esecuzione) Non garantito
defer Asincrono Dopo il caricamento completo dell’HTML e la costruzione del DOM No (eccetto al momento dell’esecuzione, ma dopo l’HTML) Garantito