JavaScript基础学习(一):HTML中的JavaScript

写在之前

使用<script>元素

  • <script>的属性
  1. async属性,这是一个可选的属性,用于告诉浏览器不必等到脚本下载和执行完后再加载页面,只对外部脚本有效。
  2. defer属性,这是一个可选的属性,用于告诉浏览器立即下载脚本,但等到页面加载完毕再执行。

defer和async的区别:

  1. 当有多个外部脚本时,执行顺序不同:
<script src="url1" defer="defer"></script>
<script src="url2" defer="defer"></script>

多个外部脚本在defer之后,执行顺序不变,保证第一个外部脚本在第二个外部脚本之前执行。

<script src="url1" async="async"></script>
<script src="url2" async="async"></script>

多个标记为async的外部脚本并不能保证它们按照出现的顺序执行,第二个脚本可能先于第一个脚本执行

  1. 下载和执行不同:

    图中,net过程表示下载脚本。
  • 如果不指定async属性和defer属性,那么下载脚本和执行脚本的过程中都会阻塞页面渲染。
  • 如果指定defer属性,那么下载脚本会在页面渲染的同时进行,等到页面渲染完毕再执行脚本。
  • 如果使用async属性,那么下载脚本会和页面渲染同时进行,在下载完毕后,就执行脚本,在执行脚本过程中会阻塞页面渲染。
  1. type属性,这是一个可选的属性,用于表示代码块中脚本语言的内容类型(MIME类型),按照惯例这个属性的值一般都是"text/javascript",如果属性值是"module",那么代表代码块会被当成ES6模块,只有在这时代码块中才能出现import和export关键字
  • 使用<script>的两种方式

    • 行内脚本
    <script>
    	function sayHi()
    	{
    		alert("Hi");
    	}
    </script>
    
    

行内脚本就是直接把JavaScript代码放在<script>中,行内脚本不能设置async属性和defer属性,这就表示行内脚本在执行时会阻塞页面。

  • 外部脚本
<script src=""></script>

使用src属性可以引入外部脚本,外部脚本如果没有设置defer属性和async属性,在外部脚本的下载和执行过程中都会阻塞页面。
如果在设置src属性的<script>元素中加入了行内脚本,浏览器会忽略行内脚本。

  • <script>位置对页面渲染速度的影响
    把<script>标签放到<body>元素中其他所有元素的后面,可以使浏览器在处理JavaScript之前完成页面渲染。
    浏览器在遇到<body>标签之后开始渲染,在完成渲染之前,浏览器窗口完全空白。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值