Middle
Qual é a diferença entre as tags <script>, <script async> e <script defer>?
sobes.tech IA
Resposta da IA
<script>: A análise do HTML para, o script é carregado e executado, depois a análise do HTML continua. Bloqueia a renderização.<script async>: O script é carregado de forma assíncrona, em paralelo com a análise do HTML. Assim que o script é carregado, a análise do HTML é interrompida para executar o script, e depois continua. A ordem de execução dos scripts assíncronos não é garantida.<script defer>: O script é carregado de forma assíncrona, em paralelo com a análise do HTML. A execução é adiada até que a análise do HTML e a construção da árvore DOM estejam completas. A ordem de execução dos scripts diferidos é mantida de acordo com sua ordem no documento.
Aqui está uma tabela que resume as diferenças:
| Atributo | Carregamento | Execução | Bloqueio da análise do HTML | Ordem dos scripts |
|---|---|---|---|---|
| ausente | Síncrona | Imediatamente após o carregamento | Sim | Garantido |
async |
Assíncrona | Imediatamente após o carregamento (se o HTML ainda estiver sendo analisado) | Sim (durante a execução) | Não garantido |
defer |
Assíncrona | Após o carregamento completo do HTML e a construção do DOM | Não (exceto no momento da execução, mas após o HTML) | Garantido |