Sí, bloqueará y la secuencia de comandos solo se ejecutará cuando se carguen otras secuencias de comandos anteriores.
E.g.
<script src='someExternalSite/script1.js'></script>
<script src='someExternalSite/script2.js'></script>
La mayoría de los navegadores intentarán acelerar las cosas cargando estos dos scripts en paralelo. Incluso si script2.js se carga antes de script1.js, no se ejecutarán hasta que se carguen ambos.
Recientemente tuve problemas con esto. Así que elaboro un par de puntos relacionados.
document.write()
fuercen al analizador de parar, y la inserción de la secuencia de comandos de esta manera todavía se ejecutará de forma secuencial (Script1.js antes Script2.js):
document.write('<script src=\'someExternalSite/script1.js\'></script>');
document.write('<script src=\'someExternalSite/script2.js\'></script>');
Por último, se puede obtener de carga completamente asíncrona haciendo:
var script1 = document.createElement('script');
script1.src = 'script1.js';
document.getElementByTagName('body')[0].appendChild(script1);
var script2 = document.createElement('script');
script2.src = 'script2.js';
document.getElementByTagName('body')[0].appendChild(script2);
El final es muy rápido, ya que los guiones se cargan completamente en paralelo, pero hay una gran Gotcha. Para navegadores basados en Webkit, la orden NO está garantizada, script2.js se ejecutará antes de script1.js si se carga primero. Si puedes evitarlo, por ejemplo tener todos los scripts en un archivo javascript, entonces este método es genial.
Dynamic script addition should be ordered?