游览器对js加载的次序

直接看例子 

<body>
    <script>
        console.log("first");
        var script = document.createElement("script");
        script.src = "js/test.js";
        document.body.appendChild(script);
        //document.getElementsByTagName("head")[0].appendChild(script);
    </script>
    <script>
        console.log("second")
    </script>
    <script type="text/javascript">
        $(function () {
            console.log("ready");         
        });   
    </script>
</body>

我们都知道游览器是上至下阅读的,当遇到js文件就去加载然后运作。

进入第一script时,我们动态生成了一个script,插入进body,然后第2个script,和第三个在dom ready 后执行的.

疑惑一 : 我们创建的script被append 到body后是在第3个script 之后还是在第一个script 之后 .

答案 : 第一个script之后,因为解释到这个时候,第三个script还没被读到.

疑惑二 : 那我们append 出去的script 会马上解读吗?会在第2,第3个script 前被解读吗? 

答案 :不一定!如果你的script是单纯的代码,而不是link一个src,那么它会马上解读,但是如果script 是一个 src , 它会一直等到dom ready 后才会解读!不管你插入在header 还是body , script.async = false 也一样。

 

游览器对js加载的次序,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。