javascript放在<head>里和放在<body>里有什么区别吗?

如题所述

    主要是先加载和后加载的区别。

    如果JavaScript脚本写在head标签里面,那么需要用window.onload起到一个延迟加载的作用。

    如果JavaScript脚本写在body里面,也要看具体位置。如果写在body里面,一般都是写在了body标签的最后面。

    例子:写在body里:<body>
    <input type="button" id="btn"/>
    <a href="javascript:;" id="div-box"></a>
    <script>
        var oBtn = document.getElementById('btn');
        var oBox = document.getElementById('div-box');
        oBtn.onclick = function () {
            var html = '<div style="width:100px; height:100px; background: #ccc;"></div>';
            if (oBox.innerHTML == '') {
                oBox.innerHTML = html;
            } else {
                oBox.innerHTML = '';
            }
        };
    </script>
    </body>例子:写在head里:<head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <script>
           window.onload = function (){
               var oBtn = document.getElementById('btn');
               var oBox = document.getElementById('div-box');
               oBtn.onclick = function () {
                   var html = '<div style="width:100px; height:100px; background: #ccc;"></div>';
                   if (oBox.innerHTML == '') {
                       oBox.innerHTML = html;
                   } else {
                       oBox.innerHTML = '';
                   }
               };
           }
        </script>
    </head>
    <body>
    <input type="button" id="btn"/>
    <a href="javascript:;" id="div-box"></a>

    </body>
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-04-12

    先加载和后加载的区别。

    JavaScript脚本写在head标签里面,那么需要用window.onload起到一个延迟加载的作用。

    JavaScript脚本写在body里面,也要看具体位置。如果写在body里面,一般都是写在了body标签的最后面。

    javascript代码默认是同步执行的,不管是内嵌的还是外部的javascript代码,都会阻塞后续html代码的加载和渲染以及后续javascript的解析。这是个必要的特性,试想一下,如果你要使用某个功能,例如jquery 库的功能,把jquery 库放在你是用的代码之前(一般放在head里),这样你在其后的任何位置都可以无限制的使用jquery 的功能而不用担心其jquery 函数功能是否已经被解析载入。

    但如果你这有一个javascript文件比较大,而这一部分的功能比较独立,没有他也不会影响页面的显示效果,那就可以考虑把它放在body的最后,即</body>之前,这样整个页面载入了,页面完全显示了才开始处理这部分javascript,当然,也可以loadjs 等异步加载方式进行异步加载,这样就不会阻塞其他html和javasscript了。

本回答被网友采纳
第2个回答  2015-09-06
其实就是一个先后处理的问题,页面是线性加载的。如果的JS处理需要在页面加载之前完成,那就放到head里头,如果不是则随意放置。在开发的时候可以不用考虑这个问题啦,到后期调整的时候再考虑是不是可以更改存放地方来加快载入速度。本回答被网友采纳
相似回答