如何加载2个Javascript文件异步并一个接一个地运行?

the*_*eee 5 html javascript asynchronous

我有这样的结构:

<script src="/Content/Scripts/1.js"></script>
<script async src="/Content/Scripts/2.js"></script>
Run Code Online (Sandbox Code Playgroud)

我需要在1.js之后加载两个文件async并运行2.js文件.我怎么能这样做?

如果我添加async到2.js,它们将随机运行.

sho*_*ild 6

您可以动态添加脚本,默认情况下它们是异步加载的.

为确保有序执行,您可以将它们明确标记为非同步.

这是一个最小的例子:

<html>
    <head>
        <script>
            [
                'http://code.jquery.com/jquery-1.11.3.min.js',
                '1.js'
            ].forEach(function(src) {
                var script = document.createElement('script');
                script.src = src;
                script.async = false;
                document.head.appendChild(script);
            });
        </script>
    </head>
    <body>

    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

File 1.js包含jquery代码:

$("body").append("<div>It works</div>");
Run Code Online (Sandbox Code Playgroud)

在此示例中,文件是异步加载的,但保持指定的顺序.如需进一步阅读,请查看:http://www.html5rocks.com/en/tutorials/speed/script-loading/