都2024了,关于HTML你应该了解?

47 阅读2分钟

引言

HTML没必要耗费太大精力在上边,背太多也记不住,实际开发中常用的标签以及特性能用明白即可,用什么学什么才是王道,大概知道以下两点俺觉得应该是够了,以防打脸,不够面试回来再加~ 哈哈~

image.png

一、如何理解HTML语义化

  1. 对开发者来讲,可以提高代码可读性
  2. 对搜索引擎来讲,更便于搜索引擎搜索,爬虫依据标签来确定于关键字权重,这就是我们所说的seo
  3. 对浏览器来讲,在没有css的情况下可以呈现出有明确结构和层次的页面

二、script标签中的defer和async

首先我们得明白,在HTML会遇到以下三种类型的script:

<script src=""></script>
<script src="" async></script>
<script src="" defer></script>
  1. 第一种html遇到没有任何属性的script标签会暂停解析,先发送网络请求下载该js的代码内容,然后让js引擎执行该代码之后才会继续解析html,图解如下:

image.png

image.png

  1. 第二种html遇到async属性的script标签会异步发起网络请求,js脚本下载完成会打断html解析并执行脚本,脚本执行完之后会继续解析html,当然,如果在此之前html已经解析完了就是html的脚力NB,并不会影响阻塞的本质。图解如下:

image.png

image.png

  1. 第三种html遇到defer属性的script标签会异步发起网络请求,js脚本下载完成不会打断html解析,会等待html解析完成后执行脚本,图解如下:

image.png

image.png

总结:以上三种类型的script的执行顺序

js执行顺序是否组设html
无属性html顺序Y
async网络返回脚本顺序Y,除非html先于html执行完
deferhtml顺序N

参考:juejin.cn/post/689462…