• JavaScript问题01 js代码放在header和body的区别


    1 body和header中JavaScript执行的时机

      1.1 header中

        放在header中的javascript代码会进行预加载(即:在页面加载之前就会进行),所以需调用才执行的脚本或事件触发执行的脚本放在HTML的head部分中。当你把脚本放在head部分中时,可以保证脚本在任何调用之前被加载。

        坑01:header中的JavaScript只是比页面先加载,但是header中哪些JavaScript并没有执行,只有被调用时才会执行header中那些JavaScript

        坑02:header中的JavaScript脚本会在页面加载前执行,事件会在被触发后执行

        技巧03:通常外部脚本都是在header中引入

    <script src="/js/jquery.js"></script>
    <script src="http://cdn.static.runoob.com/libs/jquery/2.0.0/jquery.min.js"></script>

      1.2 body中

        放在body中的JavaScript代码会在页面加载完成后才进行加载,当页面被加载时执行的脚本放在HTML的body部分。放在body部分的脚本通常被用来生成页面的内容。

        坑01:body中的JavaScript脚本会按照页面的加载顺序加载执行,事件也会在被触发后再执行

      1.3 放在header和body的区别

        1.3.1 加载顺序不同

          header中的在页面加载之前就会进行预加载,body中的会在按照页面从上到下的顺序进行加载,所以向获取DOM节点这种操作必须在目标节点对应的标签被加载后才可以进行,否则是获取不到的哟。

          

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>JavaScriptTest</title>
    <meta name="description" content="">
    <meta name="keywords" content="">
    <link href="" rel="stylesheet">
    
    <!-- <script src="/js/jquery.js"></script> -->
    <script src="http://cdn.static.runoob.com/libs/jquery/2.0.0/jquery.min.js"></script>
    <script>
        alert("Hello Boy");
        var a = 100;
        console.log(a);
        var b = document.getElementById("test");
        alert("header中获取  -->>  " + b);
    </script>
    
    </head>
    <body>
        <p>Hello Boy</p>
        <script>
            var b = document.getElementById("test");
            alert("body中获取(PS: id为test的标签还未完成加载)  -->>  " + b);
        </script>
        <button id="test">测试按钮</button>
    
        <script>
            var b = document.getElementById("test");
            alert("body中获取(PS: id为test的标签完成了加载)  -->>  " + b);
        </script>
        
    </body>
    </html>
    View Code

        1.3.2 功能不同

          heaer中的通常用来加载一些外部的JavaScript文件,从而提高效率;body中的主要用来实现一些页面内容的动态创建,比如:制作鼠标跟随事件,肯定只有当页面加载后再进行对鼠标坐标的计算。或者是filter滤镜与javascript的联合使用产生的图片淡入淡出效果

      1.4 技巧

        外部js文件的加载放在header中的<script>标签中

        动态创建内容的代码放在body中的<script>标签中

        函数放在header或者body中的<script>标签中没有区别

        像 alert() console.log() 这些如果放在header中的<script>标签中会在页面加载之前执行,如果放在body中的<script>标签中就会在按照页面的加载顺序进行加载

  • 相关阅读:
    首评 | 阿里云顺利完成国内首个云原生安全成熟度评估
    基于任务调度的企业级分布式批处理方案
    阿里云发布性能测试 PTS 2.0:低成本、高效率、多场景压测,业务稳定性保障利器
    OpenKruise v1.2:新增 PersistentPodState 实现有状态 Pod 拓扑固定与 IP 复用
    ZooKeeper 在阿里巴巴的服务形态演进
    阿里云微服务引擎 MSE 5 月产品动态
    应用实时监控服务ARMS 5 月功能快报&优惠汇总
    618 大促来袭,浅谈如何做好大促备战
    「技术人生」第8篇:如何画业务大图
    Serverless Job——传统任务新变革
  • 原文地址:https://www.cnblogs.com/NeverCtrl-C/p/8638055.html
Copyright © 2020-2023  润新知