Skip to content
字数
391 字
阅读时间
2 分钟

布局原理

回流和重绘

发生在渲染树的构建阶段,如果在这一过程中,遇到了元素的尺寸、布局或者 display 的改变,就需要重新构建渲染树没这就是回流

在回流的过程中,渲染树收到影响的地方会被重新构造,完成回流后,浏览器会重新绘制这一重新构造的部分,这一过程称之为重绘

渲染树的布局和绘制

布局

渲染树中每个节点都有一个 layout 方法,布局会从 render树 的底层节点开始,递归的计算渲染树中每个节点的 position 和 size 信息,最终得到每个 DOM 元素 在屏幕上显示的大小和位置

绘制

同样遍历 render tree,触发每个节点自身的 paint函数 ,然后调用浏览器的 UI接口 去绘制整个页面,每个元素的绘顺序是 背景元素——背景图片——边框——children——outline,后续可能触发重绘

script 标签的引入资源的三种方式

script 标签发送网络请求获取该 JS 脚本的代码内容

defer 本身就是 延迟 的意思

scriptJS 执行顺序是否阻塞解析 HTML
async 属性网络请求返回顺序可能阻塞,也可能不阻塞
带 defer(延迟)属性在 HTML 中的顺序不阻塞
< script >在 HTML 中的顺序阻塞

贡献者

The avatar of contributor named as jiechen jiechen

页面历史

撰写