JS中script代码放在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中引入

1.2 body中

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

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

1.3 放在header和body的区别
1.3.1 加载顺序不同

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

      这里写图片描述

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标签中就会在按照页面的加载顺序进行加载.
    
    转自:https://www.cnblogs.com/NeverCtrl-C/p/8638055.html

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用HTML5、CSS和JavaScript进行优化的代码: HTML5: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>南昌航空大学科技学院</title> <link rel="stylesheet" href="style.css"> </head> <body> <header> <h1>南昌航空大学科技学院</h1> </header> <nav> <a href="#" class="active">首页</a> <a href="#">关于我们</a> <a href="#">联系我们</a> </nav> <section> <figure> <img src="https://picsum.photos/200/300" alt="图片1"> <figcaption>这是一张美丽的图片</figcaption> </figure> <figure> <img src="https://picsum.photos/200/300" alt="图片2"> <figcaption>这是另一张美丽的图片</figcaption> </figure> <figure> <img src="https://picsum.photos/200/300" alt="图片3"> <figcaption>这是第三张美丽的图片</figcaption> </figure> </section> <footer> <p>2021我的网页</p> </footer> <script src="script.js"></script> </body> </html> ``` CSS: ```css /* Reset CSS */ * { margin: 0; padding: 0; box-sizing: border-box; } /* Global styles */ body { font-family: Arial, sans-serif; background-color: #f2f2f2; color: #333; font-size: 16px; } h1 { font-size: 36px; text-align: center; margin: 20px 0; } a { color: #333; text-decoration: none; } a:hover { color: #87CEEB; } /* Header */ header { background-color: #87CEEB; color: white; padding: 20px; } /* Navigation */ nav { background-color: #f1f1f1; text-align: center; padding: 10px; margin-bottom: 20px; } nav a { display: inline-block; padding: 14px 16px; font-weight: bold; font-size: 18px; } nav a.active { background-color: #87CEEB; color: white; } nav a:hover { background-color: #ddd; } /* Content */ section { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; margin: 20px; } figure { margin: 10px; box-shadow: 0 0 5px #ccc; } img { max-width: 100%; height: auto; } figcaption { font-size: 18px; line-height: 1.5; text-align: center; margin: 10px; } /* JavaScript */ figure:hover { transform: scale(1.1); box-shadow: 0 0 10px #CCCCCC; } ``` JavaScript: ```javascript // Show welcome message function showMsg() { alert("南昌航空大学科技学院 欢迎您!"); } // Toggle active class on navigation links const navLinks = document.querySelectorAll("nav a"); navLinks.forEach(link => { link.addEventListener("click", function() { navLinks.forEach(link => link.classList.remove("active")); this.classList.add("active"); }); }); ``` 在这个优化版本,我们采用了更加简洁的HTML5标签和样式,使用了更加规范化的CSS和JavaScript方式。同时,我们也将JavaScript代码放到了一个单独的文件,这样可以更加方便地维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值