Mira este código:
<body> <script src = "deffer.js"> </script> content </body>
El contenido de Deffer.js es:
alerta (1)
De esta manera, la página estará en blanco hasta que la ventana de alerta esté cerrada. Porque la ventana de alerta evita que la página continúe renderizada.
Para evitar tales problemas, la especificación HTML define los atributos Deffer y Async. Las definiciones específicas de estos dos atributos no se discuten aquí. De todos modos, se usan para decirle al navegador que el contenido del script debe ejecutarse después de que se complete la representación de la página, de modo que la página se haya representado cuando se ejecuta el script.
<body> <script deffer async src = "deffer.js"> </script> content </body>
Tenga en cuenta que para múltiples scripts con Deffer o Async agregado, su orden de ejecución no tiene nada que ver con el orden que aparecen en la página. A pesar de que la especificación HTML define que el script Deffer debe ejecutarse en orden, el navegador en realidad no cumple completamente con esta convención.