脚本中的异步不像多线程那样,但与延迟类似

时间:2013-10-15 13:19:00

标签: javascript html

我理论上知道async标记中使用的 defer <script> 之间的差异。

async 脚本与页面的其余部分异步执行(脚本将在页面继续解析时执行。)

defer 在网页完成解析后执行脚本。

但无法理解他们遵循的机制。

我有以下两个文件 - 1.js1.html

1.js

alert('Running external JS');

1.HTML

<html>
    <body>
        <script src="1.js" async></script>
        <script>
            for(var i=0;i<5;i++)
            {
                alert('HTML code1');
            }
        </script>
        <script>
            for(var i=0;i<5;i++)
            {
                alert('HTML code2');
            }
        </script>
    </body>
</html>

html文件执行s.t.所有alert语句首先执行,然后最后执行脚本1.js,即它的行为与defer代替async <script>时的行为类似-tag。

根据我的预期,因为外部脚本比HTML本身中的代码小得多 ,它应该在HTML文档中的alert语句之间的任何位置触发 ,因为我正在使用async但行为类似于使用defer的效果。

请解释这里发生的事情,如果我错了,请纠正我。

0 个答案:

没有答案