关于javascript的执行顺序简单测试

原始代码及效果

<!DOCTYPE html>
<html lang="zh-cmn-hans">
<head>
  <meta charset="UTF-8">
  <title>test</title>

  <style>
    body {
      background-color: lightblue;
    }
  </style>

</head>
<body>
</body>
</html>

这里写图片描述

在<head>里面添加<script>脚本,将会先执行js脚本,阻塞后面的页面加载。

<!doctype html>
<html lang="zh-cmn-hans">
<head>
  <meta charset="UTF-8">
  <title>test</title>

  <style>
    body {
      background-color: lightblue;
    }
  </style>

  <script>
    alert("hello world");
  </script>

</head>
<body>
</body>
</html>

这里写图片描述

在<head>里面添加外部js脚本,依旧会先执行js脚本,阻塞后面的页面加载。

<!doctype html>
<html lang="zh-cmn-hans">
<head>
  <meta charset="UTF-8">
  <title>test</title>

  <style>
    body {
      background-color: lightblue;
    }
  </style>
  <script src="1-7-test-js.js"></script>

</head>
<body>
</body>
</html>

这里写图片描述

给<script>加上async属性,进行异步加载。
(注意:async属性只对外部脚本有效。)

<!doctype html>
<html lang="zh-cmn-hans">
<head>
  <meta charset="UTF-8">
  <title>test</title>

  <style>
    body {
      background-color: lightblue;
    }
  </style>
  <script src="1-7-test-js.js" async="async"></script>

</head>
<body>
</body>
</html>

这里写图片描述

页面加载的过程中,遇到<script>会立即解析,完成后才会继续向下进行,因此需要注意的是:
1.需要异步加载js脚本,需要给<script>加上async属性(必须是外部脚本才有效)。
2.要在页面加载完成后执行的js脚本,最好放在</body>之前,这样可以加快页面加载速度。
3.如果js脚本需要操作DOM节点,脚本放在需要操作的DOM节点之前,则会出现错误。

参考文章:
https://coolshell.cn/articles/9749.html
https://juejin.im/post/59e85eebf265da430d571f89

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值