1. 阻塞后续DOM的解析
如果后续DOM节点加载完了,结果这个js执行一大堆把这个DOM节点删除了,js 就白解析了,做了无用功,所以 js 会阻塞后续DOM的解析
2. 阻塞后续js的执行
依赖关系,一个依赖一个
3. 阻塞页面渲染
js 也可以更改DOM的样式、值等等,所以避免做无用功,阻塞DOM渲染
这个场合经常遇见,如果js报错了,页面白屏了
4. 总结:
(1)js阻塞还是非常强大的
(2)CSS 的解析和JS的执行是不能同时执行的,但无论什么阻塞都不会影响外部资源的加载,加载照样加载,执行可就不一定了。
(3)阻塞的意思 比如 2s 后返回内容,或者 内容非常非常大以后再返回
5.defer 的作用
<script defer src='./index.js'></script>
defer相当于 window.onLoad,等页面DOM解析完了,执行这个 js 文件的内容
6. 解析通俗的讲就是 HTML 解析器向下读取代码的能力
style: link 样式外部引入,会阻塞页面渲染,但是不会阻塞 DOM 解析
JS:script 外部引入标签,既会阻塞页面渲染,也会阻塞DOM解析