JS脚本的加载

JavaScript 有三种引入方式:

行内引入

<开始标签 on+事件类型=“js 代码”></结束标签>

行内引入方式必须结合事件来使用,但是内部 js 和外部 js 可以不结合事件

<body>
  <input
    type="button"
    οnclick="alert('行内引入')"
    value="button"
    name="button"
  />
  <button οnclick="alert(123)">点击我</button>
</body>

内部引入

在 head 或 body 中,定义 script 标签,然后在 script 标签里面写 js 代码

<script>
  alert('这是js的内部引入');
</script>

外部引入

定义外部 js 文件(.js 结尾的文件)

<script type="text/javascript" src="demo.js"></script>

注:

  1. script 标签一般定义在 head 或 body 中
  2. Script 标签要单独使用,要么引入外部 js,要么定义内部 js,不要混搭使用

外部的 JS 文件,它具有维护性高、可缓存(加载一次,无需加载)、方便未来扩展、复用性高等特点

JavaScript 加载和执行

<body>
  <script>
    var p = document.getElementsByTagName('p');
    p[0].style.color = 'red';
  </script>
  <p>hello</p>
</body>

在这里插入图片描述

我们会发现 hello 没有正常的变成红色

由于多数浏览器使用单一进程来处理用户界面刷新和 JavaScript 脚本的执行,所以同时只能做一件事。简单来说,<script>标签每次已出现,页面都只能等待脚本的解析和执行。在这个过程中,页面渲染和用户交互是完全被阻塞的。

脚本位置

由于脚本会阻塞页面其他资源的加载,因此推荐将所有<script>标签尽可能放到<body>标签的底部

<body>
  <p>hello</p>
</body>
<script>
  var p = document.getElementsByTagName('p');
  p[0].style.color = 'red';
</script>

现在,hello 正确变成了我们设置的 红色 。

当以后遇到项目开发时,书写的脚本过于庞大时,如果等待它全部解析完毕加载,那样效率太低了。有没有办法改进一下呢?

动态脚本元素(推荐)

利用 DOM 动态的创建<script>元素:

var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'index.js';
document.getElementsByTagName('head')[0].appendChild(script);

仅当该元素被添加到页面时开始下载,这种技术的重点在于:无论何时启动,文件的下载和执行过程都不会阻塞页面其他进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值