Existe alguma razão para usar o atributo async quando o script já está na parte inferior da página?
Uma pergunta perspicaz e muito curiosa.
A pergunta se baseava em cima deste código:
<script async src="/js/script.js"></script> </body>
Bom, a sua utilização de forma resumida força a utilização de que o carregamento do script aconteça de forma assíncrona e/ou paralela ao carregamento da página como um todo.
Isto até faria sentido e é super recomendado para scripts que estão no início da página, para que eles não atrapalhem todo o carregamento da página caso algo aconteça.
Mas a questão atual se baseia na seguinte dúvida : E no final da página? Existe uma razão específica para utilizar? Já que ao final da página, eu não terei nenhuma dependência a mais.
Bom, a resposta curta para isto é: Não
Já a resposta completa é:
O que você está tentando forçar com o atributo async é evitar o bloqueio parser. Se você usar o atributo async, você está dizendo: Eu não quero que o navegador pare o que está fazendo enquanto ele está baixando este script ou processando. Eu sei que esse script realmente não depende de nada e no DOM quando ele é executado também não precisa ser executado em qualquer ordem particular.
No final das contas você está apenas afirmando o que já vai ser feito, que é o carregamento do script ao final da página, se colocá-lo no final. Porém vale a pena lembrar é que caso você utilizar múltiplas chamadas async você tem que garantir que nenhum script dependerá do outro, pois caso contrário, você terá grandes problemas!
Bom, fique a dica para leitura complementar: Async (em inglês)
Um abraço a todos! 🙂