js和css的加载造成阻塞

浏览器渲染原理图:

js和css的加载造成阻塞_第1张图片

JS
1.现代浏览器会并行加载js文件,参见start time列,但是按照书写顺序执行代码

2.加载或者执行js时会阻塞对标签的解析,也就是阻塞了dom树的形成,只有等到js执行完毕,浏览器才会继续解析标签。没有dom树,浏览器就无法渲染,所以当加载很大的js文件时,可以看到页面很长时间是一片空白

之所以会阻塞对标签的解析是因为加载的js中可能会创建,删除节点等,这些操作会对dom树产生影响,如果不阻塞,等浏览器解析完标签生成dom树后,js修改了某些节点,那么浏览器又得重新解析,然后生成dom树,性能比较差

CSS
1.css文件是并行下载的

2.css的下载会阻塞后面js的执行,以上代码先执行"before css",然后开始下载三个css文件,文件下载完成,执行"after css"

3.css的下载不会阻塞后面js的下载,但是js下载完成后,被阻塞执行

参考:https://www.cnblogs.com/bibiafa/p/9364986.html

你可能感兴趣的:(原理理解,css,javascript,前端)