I have a couple of questions about the attributes async
& defer
for the <script>
tag which to my understanding only work in HTML5 browsers.
One of my sites has two external JavaScript files that currently sit just above the </body>
tag; the first is jquery sourced from google and the second is a local external script.
Is there any advantage in adding async
to the two scripts I have at the bottom of the page?
Would there be any advantage in adding the async
option to the two scripts and putting them at the top of the page in the <head>
?
Would this mean they download as the page loads?
I assume this would cause delays for HTML4 browsers, but would it speed up page load for HTML5 browsers?
<script defer src=...
<head>
with the attribute defer
the same affect as having the scripts before </body>
?<script async src=...
If I have two scripts with async
enabled
Finally am I best to leave things as they are until HTML5 is more commonly used?
This image explains normal script tag, async and defer
Async scripts are executed as soon as the script is loaded, so it doesn't guarantee the order of execution (a script you included at the end may execute before the first script file )
Defer scripts guarantees the order of execution in which they appear in the page.
Ref this link : http://www.growingwiththeweb.com/2014/02/async-vs-defer-attributes.html