【前端面试】采用react前后,浏览器-解析渲染UI的变化

浏览器渲染html

浏览器解析和渲染 UI(用户界面),特别是 HTML 文档,是一个复杂的过程,涉及到多个阶段。以下是浏览器从接收 HTML 文档到显示渲染后的页面的一般步骤:

1. 下载 HTML 文档

  • 用户输入 URL 或点击链接时,浏览器会向服务器请求 HTML 文档。
  • 服务器响应请求,并将 HTML 文档发送回浏览器。

2. 解析 HTML

  • 浏览器开始解析 HTML 文档,构建一个 DOM(文档对象模型)树。
  • DOM 树是由节点组成的,每个节点代表 HTML 文档中的一个元素。

3. 解析 CSS

  • 浏览器同时解析关联的 CSS 样式表,构建一个 CSSOM(CSS 对象模型)树。
  • CSSOM 树包含了所有样式信息,用于确定如何显示 DOM 树中的每个元素。

4. 构建渲染树

  • 浏览器将 DOM 树和 CSSOM 树合并,创建一个渲染树。
  • 渲染树包含了 DOM 树中的所有可见元素,以及它们的样式信息。

5. 布局(Layout)

  • 浏览器对渲染树进行布局,也称为“流布局”(flow layout)。
  • 这一步骤确定了每个元素在页面上的确切位置和大小。

6. 绘制(Painting)

  • 浏览器使用渲染树的信息来绘制页面上的每个元素。
  • 这一步骤涉及到将元素的样式、颜色、图片等绘制到屏幕上。

7. 合成(Compositing)

  • 对于有层叠上下文(如使用 CSS 的 transformopacityfilter 属性)的元素,浏览器会进行合成。
  • 合成是将页面的各个部分合并到最终的像素输出上的过程。

8. 显示页面

  • 一旦绘制和合成完成,浏览器就会显示渲染后的页面。
  • 用户现在可以看到并与之交互。

9. JavaScript 执行

  • 如果 HTML 文档中包含 JavaScript 代码,浏览器会在不影响解析的情况下延迟执行,或者在文档解析完成后执行。
  • JavaScript 可以修改 DOM 和 CSSOM,这可能导致浏览器重新执行上述渲染流程的一部分。

10. 重排(Reflow)和重绘(Repaint)

- 当 DOM 或 CSSOM 发生变化时,浏览器可能需要重新执行布局、绘制或合成。
- 这些变化可能是由于用户交互、JavaScript 操作或浏览器窗口大小的改变。

浏览器的渲染引擎(如 Chrome 的 Blink、Firefox 的 Geck

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值