Instead of just including <script src="..."> tag on a page as usual, facebook recommends loading its SDK library in the following way:
<div id="fb-root"></div>
<script>
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
</script>
Saying, that:
The best place to put the asynchronous version of the code is right after the opening
<body>tag. This allows Facebook initialization to happen in parallel with the initialization on the rest of your page.
If it is that great then maybe I should always use this method in all my projects for any external javascript include? When it is appropriate to use this technique and what are the reasons against it?