Skip to content

页面加载的过程中,JS 文件是不是一定会阻塞 DOM 和 CSSOM 的构建?

Posted on:2024年8月10日 at 17:07

答案:不一定

JavaScript阻塞DOM和CSSOM的构建的情况主要集中在以下两个方面:

当JavaScript文件被放置在head标签内部时,浏览器会先加载JavaScript文件并执行它,然后才会继续解析HTML文档。因此,如果JavaScript文件过大或服务器响应时间过长,就会导致页面一直处于等待状态,进而影响DOM和CSSOM的构建。

在JavaScript代码执行时,如果对DOM结构进行了修改,那么浏览器需要重新计算布局(reflow)和重绘(repaint),这个过程会较为耗时,并且会阻塞DOM和CSSOM的构建。

除此之外,还有一些情况下JavaScript并不会阻塞DOM和CSSOM的构建:

总结

在一定情况下,JavaScript的执行会阻塞DOM和CSSOM的构建。

但是,在实际应用中,我们可以通过设置 script 标签的 async、defer 属性、使用Web Workers等方式来避免这个问题。

原文转自:https://fe.ecool.fun/topic/212703a8-43a2-426e-b9c4-b51053436d23