Ja, es wird blockiert und das Skript wird nur ausgeführt, wenn vorher andere Skripte geladen wurden.
z.
Die meisten Browser versuchen, die Dinge zu beschleunigen, indem sie diese beiden Skripte parallel laden. Auch wenn script2.js vor script1.js geladen wird, werden sie erst ausgeführt, wenn beide geladen sind.
Ich habe vor kurzem in Schwierigkeiten damit geraten. Also erarbeite ich ein paar verwandte Punkte.
document.write()
zwingt den Parser zu stoppen, und auf diese Weise die Skript Einfügen sequentiell noch ausgeführt wird (script1.js vor script2.js):
document.write('<script src=\'someExternalSite/script1.js\'></script>');
document.write('<script src=\'someExternalSite/script2.js\'></script>');
Schließlich können Sie vollständig asynchronen Laden erhalten, indem Sie:
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);
Der letzte ist sehr schnell, da die Skripte vollständig parallel geladen werden, aber es gibt einen großen gotcha. Für Webkit-basierte Browser ist die Reihenfolge nicht garantiert, script2.js wird vor script1.js ausgeführt, wenn es zuerst geladen wird. Wenn Sie das umgehen können, sagen Sie alle Skripte in einer Javascript-Datei, dann ist diese Methode großartig.
Dynamic script addition should be ordered?