不一定,在页面加载过程中,JavaScript 文件可能不会阻塞 DOM 和 CSSOM 的构建,但有以下两种情况除外:
- JavaScript 位于
<head>标签内:浏览器会先加载并执行 JavaScript,再解析 HTML,可能阻塞构建被延迟。 - 修改 DOM 结构:执行期间修改 DOM 会触发重绘,影响构建。
为避免阻塞,可使用:
async和defer属性:异步加载脚本,不阻塞解析完成后执行。- Web Workers:后台运行脚本,不阻塞主线程。
总结:通过这些方法,JavaScript 可避免阻塞 DOM 和 CSSOM 构建。