Scenarios require interpretation (which can be relatively expensive) and may optionally request a request through another HTTP request. Placing them at the end of the document allows you to load the rest of the page.
Scripts without the async or defer attributes are retrieved and executed immediately before the browser continues to parse the page.
https://developer.mozilla.org/en-US/docs/HTML/Element/script
See also http://dev.w3.org/html5/spec/the-script-element.html , namely the areas around preparation / blocking, which are described in detail. Note that this is an editorial project in a stream; some of these rules may not be in the final specification or applied by all user agents.
As a side note, this locking behavior is not bad / wrong. Think of a library like Modernizr , which refers to head . It modifies the DOM in a way that allows CSS to be applied correctly; if they were executed in parallel, the results would be incorrect.
source share