Javascript 异步加载js,但同步执行

Javascript 异步加载js,但同步执行,javascript,jquery,html,Javascript,Jquery,Html,情况是我有很多js文件。根据不同的平台调用不同的文件。 所以我有一个问题,因为我想异步加载文件。但是这些文件的执行应该同步进行。目前我正在做这个函数调用 function loadScriptJs(src) { Console.log(' Call to file '+src); var file = document.createElement('script'), head = document.getElementsByTagName(

情况是我有很多js文件。根据不同的平台调用不同的文件。 所以我有一个问题,因为我想异步加载文件。但是这些文件的执行应该同步进行。目前我正在做这个函数调用

  function loadScriptJs(src) {   
     Console.log(' Call to file '+src);
     var file = document.createElement('script'),
            head = document.getElementsByTagName('head')[0];
    file.type = 'text/javascript';
    file.setAttribute("defer","defer");
    file.setAttribute("src",src);
    head.appendChild(file);
        file.onload = function() {            
              console.log(src + " is loaded.");
        };
  }
现在我有了一个数组,其中有一个被调用的js文件列表。我循环遍历数组,并为每个src调用此函数。 我在每个js文件中都使用了document.ready函数。在这里,我检查了文件的依赖关系,并优化了序列。也就是说,依赖文件加载得越晚(在数组中出现得越晚),而更多类似于父文件的文件出现得越早

示例:-如果我有文件A1、B2、C3、D4、E5。。。。。像智者一样。我的数组是['js/A1.js'、'js/B2.js'、'js/C3.js'…]。当我运行这个循环时。 我得到的控制台“调用文件名[filename]”的顺序与数组中的顺序相同,但控制台“[filename]已加载”的顺序与预期的顺序不同

是的,我无法控制加载,因为它是通过互联网进行的。但我希望执行是同步的。ie在最后一个文件完成加载后开始执行所有文件


有人能为我提供一些建议、建议或想法吗

动态插入的脚本可能不符合
defer
属性<代码>脚本标记具有
异步
属性。默认情况下这是真的。显式地将其设置为false

file.setAttribute("async", "false");
或者使用纯HTML

<script type="text/javascript" async=false src="A1.js"></script>


您可能还需要删除每个脚本中的
document.ready
方法,并在顶层启动脚本逻辑,将每个JS脚本附加到
body
标记的底部,而不是标题。如果多个脚本在就绪事件触发之前注册,您不知道它们的调用顺序。

这可能会有所帮助:@yonki link不是opening@yonki适合me@SSS下面是更具体的文章