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