Javascript-src加载顺序

Javascript-src加载顺序,javascript,html,Javascript,Html,我有以下代码布局 <script src="http://some.javascript/file.js"></script> // This should load first <script language="JavaScript"> document.write('<SCR'+'IPT language="JavaScript1.1" SRC="http://a.link.to.an.external.url/that/returns/a

我有以下代码布局

<script src="http://some.javascript/file.js"></script> // This should load first
<script language="JavaScript">
    document.write('<SCR'+'IPT language="JavaScript1.1" SRC="http://a.link.to.an.external.url/that/returns/a/full/html/page/including/some/javascript">'); // This should load second
    document.write('</SCR'+'IPT>');
</script>

MyJavascriptFunctionThatDependsOnStuffLoadedFromThe.documentWritePage(); <!-- Those files above should have loaded before this call -->
//应首先加载此文件
文件。写(“”);//这应该是第二次加载
文件。写(“”);
MyJavaScriptFunction依赖于从.documentWritePage()加载的填充;
我知道这看起来很奇怪。让我们假设它看起来像那样,原因是它不会影响JS的加载方式。这不需要跨浏览器工作——只需要WebKit浏览器


如何确保在下一个文档之前完全加载这些文档?也就是说,我如何确保这些文档同步加载,以便最后的函数调用可以采用适当的状态?

JavaScript文件应按顺序加载并阻止,除非您所依赖的脚本正在执行一些异常操作,否则您只需在其他文件之后加载application.js

跨域脚本是在站点本身的脚本之后加载的,这就是为什么会出现错误

您可以添加事件侦听器并在此事件上加载js文件,如下所示:

function addJavaScript( js, onload ) {
   var head, ref;
   head = document.getElementsByTagName('head')[0];
   if (!head) { return; }
   script = document.createElement('script');
   script.type = 'text/javascript';
   script.src = js;
   script.addEventListener( "load", onload, false );
   head.appendChild(script);
}

我不认为你可以在跨浏览器的情况下做到这一点

IE(至少许多旧版本)将按照从服务器返回的顺序处理脚本标记。许多其他浏览器按照定义的顺序处理它们。像这样动态添加到DOM中的,谁知道呢?我当然不会指望能够控制它们的执行顺序,除非您在尝试添加下一个之前添加某种包装来测试一个包装是否到位


如果真的是这样,我真的不知道该建议什么。但是如果您可以切换到使用模块加载器,则有很多模块加载器。您可能会特别关注

为什么要使用
document.write()
?这到底是什么<代码>文件。写入(“”)叹气让我们假设代码需要如下所示。我真的不想讨论它。为什么你要记录。编写一个脚本标记,它的源代码包括html(谁知道还有什么其他内容)和javascript?这只是添加结束脚本标记的一种老式方法。这如何解决Darren希望解决的同步问题?这显然是一种比
文档更好的语法。编写
版本,但我看不出它如何解决基本问题。