JS 与 CSS 是否阻塞 DOM 的渲染和解析

CSS不会阻塞DOM解析但会阻塞渲染,JS会阻塞DOM解析。CSS会阻塞JS执行,浏览器在遇到JS标签时会触发渲染,除非使用defer或async属性。
摘要由CSDN通过智能技术生成

CSS 不会阻塞 DOM 解析,但是会阻塞 DOM 渲染

<head>
  <script>
    document.addEventListener('DOMContentLoaded', () => {
   
      var p = document.querySelector('p')
      console.log(p)
    })
  </script>
  <link rel="stylesheet" href="./style.css?sleep=3000">//3s后返回css文件,设置P标签为浅蓝色。
</head>
<body>
  <p>hello world</p>
</body>

      页面初始显示为空白,控制台打印出了p元素,同时浏览器标签页上加载loading,3s后页面显示出浅蓝色的hello world
       由此可知,CSS不会阻塞DOM的解析,如果说CSS阻塞DOM解析的话,那么p标签不会被解析,进而DOM不会被解析完成,CSS请求过程中也就不可能会触发DOMContentLoaded事件。虽然DOM很早就被解析完成,但是p标签却迟迟没有渲染,原因在于CSS样式还未请求完成,在样式获取后hello world才被渲染出来,所以说CSS会阻塞页面渲染。更为严谨一点的说,CSS会阻塞render tree的生成,进而会阻塞DOM的渲染。

JS会阻塞DOM解析

<head>
  <script>
    document.addEventListener
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值