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

15 阅读1分钟

不一定,在页面加载过程中,JavaScript 文件可能不会阻塞 DOM 和 CSSOM 的构建,但有以下两种情况除外:

  1. JavaScript 位于 <head> 标签内:浏览器会先加载并执行 JavaScript,再解析 HTML,可能阻塞构建被延迟。
  2. 修改 DOM 结构:执行期间修改 DOM 会触发重绘,影响构建。

为避免阻塞,可使用:

  • async 和 defer 属性:异步加载脚本,不阻塞解析完成后执行。
  • Web Workers:后台运行脚本,不阻塞主线程。

总结:通过这些方法,JavaScript 可避免阻塞 DOM 和 CSSOM 构建。