Middle
¿Cuál es la diferencia entre las etiquetas <script>, <script async> y <script defer>?
sobes.tech AI
Respuesta de la IA
<script>: El análisis del HTML se detiene, el script se carga y se ejecuta, luego el análisis del HTML se reanuda. Bloquea el renderizado.<script async>: El script se carga de forma asíncrona, en paralelo con el análisis del HTML. Tan pronto como se carga el script, se interrumpe el análisis del HTML para ejecutar el script, y luego se reanuda. El orden de ejecución de los scripts asíncronos no está garantizado.<script defer>: El script se carga de forma asíncrona, en paralelo con el análisis del HTML. La ejecución se aplaza hasta que se complete completamente el análisis del HTML y la construcción del árbol DOM. El orden de ejecución de los scripts diferidos se mantiene de acuerdo con su orden en el documento.
Aquí hay una tabla que resume las diferencias:
| Atributo | Carga | Ejecución | Bloqueo del análisis del HTML | Orden de los scripts |
|---|---|---|---|---|
| ausente | Sincrónica | Inmediatamente después de la carga | Sí | Garantizado |
async |
Asíncrona | Inmediatamente después de la carga (si el HTML aún se está analizando) | Sí (durante la ejecución) | No garantizado |
defer |
Asíncrona | Después de que se complete la carga del HTML y la construcción del DOM | No (excepto en el momento de la ejecución, pero después del HTML) | Garantizado |