Veja alguns JSs do lado do cliente que lançamos juntos (com base no snippet de acompanhamento assíncrono do Google Analytics) que permitem que você carregue Javascripts externos de forma assíncrona:
<script type="text/javascript">
(function() {
var scripts = new Array(
'external.domain.com/script1.js',
'external.domain.com/script2.js',
'../script1.js',
'./script2.js',
'/script3.js'
);
if ( scripts.length )
{
for ( var i = 0; i < scripts.length; i++ )
{
var asynchronous = document.createElement('script');
asynchronous.type = 'text/javascript';
asynchronous.async = true;
if (
scripts[i].substring(0, 1) != '/' &&
scripts[i].substring(0, 1) != '.'
) {
// assume external domain (enforce protocol)
asynchronous.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + scripts[i];
} else {
// assume relative URI
asynchronous.src = scripts[i];
}
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(asynchronous, s);
}
}
})();
</script>