当前位置: 首页 > news >正文

浏览器是如何渲染页面的? - 2024最新版前端秋招面试短期突击面试题

浏览器是如何渲染页面的? - 2024最新版前端秋招面试短期突击面试题【100道】 🌐

浏览器的渲染流程是将 HTML、CSS 和 JavaScript 转换为用户可见内容的过程。以下是浏览器渲染的一系列步骤,以及每个步骤的关键过程和输入输出。

渲染流程概述 🔄

当浏览器的网络线程收到 HTML 文档后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列。主线程会依次处理这些任务,开启渲染流程。

主要步骤:

在这里插入图片描述

  1. HTML 解析
  2. 样式计算
  3. 布局
  4. 分层
  5. 绘制
  6. 分块
  7. 光栅化
  8. 绘制到屏幕

1. HTML 解析 📖

  • 过程
    • 浏览器解析 HTML 文档,构建 DOM 树。
    • 遇到 <link> 标签时,启动预解析线程下载外部 CSS 文件,解析 CSS 不会阻塞 HTML。
    • 遇到 <script> 标签时,停止 HTML 解析,等待 JS 加载和执行,因为 JS 可能会修改 DOM。

输出:

  • 生成 DOM 树。

2. 样式计算 🎨

  • 过程
    • 主线程遍历 DOM 树,计算每个节点的最终样式,生成 CSSOM 树(CSS 规则对象模型)。
    • 计算过程中,默认样式、内部样式、外部样式和行内样式都会被纳入考虑。

输出:

  • 生成带有样式的 DOM 树(结合 CSSOM)。

3. 布局 📏

  • 过程
    • 根据带有样式的 DOM 树,计算每个节点的几何信息(如宽高、位置等),生成布局树。
    • 有些节点(如 display: none 的节点)不会出现在布局树中。

输出:

  • 生成布局树。

4. 分层 📊

  • 过程
    • 主线程使用策略对布局树进行分层,决定哪些元素需要单独处理。
    • 分层的好处在于,某层的变化只需重新处理该层,提高效率。

影响因素:

  • 样式如滚动条、堆叠上下文、transformopacity 等都会影响分层结果。

输出:

  • 生成多个图层。

5. 绘制 🖌️

  • 过程
    • 为每个层生成绘制指令集,描述该层的内容如何绘制。

输出:

  • 生成绘制指令。

6. 分块 🗂️

  • 过程
    • 合成线程对每个图层进行分块,将其划分为更小的区域,以提高处理效率。
    • 多线程加速分块处理。

输出:

  • 生成更小的块信息。

7. 光栅化 🖼️

  • 过程
    • 合成线程将块信息交给 GPU 进程进行光栅化。
    • GPU 处理光栅化时,优先处理接近视口的区域,确保用户看到的内容更快呈现。

输出:

  • 生成位图。

8. 绘制到屏幕 🖥️

  • 过程
    • 合成线程拿到每个层的位图,通过生成的「指引(quad)」信息,确定每个位图在屏幕上的位置,同时处理变形。

输出:

  • 最终在屏幕上呈现用户界面。

总结 📝

浏览器的渲染过程是一个复杂而高效的流水线,每一步都有明确的输入和输出。通过理解这些步骤,开发者可以更好地优化网页性能,提高用户体验。在面试中能够清晰地阐述这一流程的细节,将使你在技术面试中更具竞争力!希望这些知识能帮助你顺利通过面试!


http://www.mrgr.cn/news/66998.html

相关文章:

  • 【AI绘画】每天只需 10 分钟,月收入可达 1 万以上,操作极其简单。
  • java设计模式之创建者模式(5种)
  • 鸢尾博客项目开源
  • 七牛云OSS的使用
  • Photoshop 2025重磅来袭 :全新功能炫耀安装!Adobe全家桶
  • Ubuntu 扩容磁盘
  • 编程语言越来越多,为什么C/C++还没有被现在的时代淘汰呢?
  • 智合同丨买卖合同纠纷中,起诉关联公司需要准备些什么?
  • JVM 内存结构中哪些区域可能发生 OOM
  • 红队-linux基础(1)
  • linux利用环境变量提权以及如何防范
  • 基本开关电源电路分析
  • Axure设计之三级联动选择器教程(中继器)
  • 大家知道输电线路微风振动在线监测有哪些先进技术?
  • docker 入门教程
  • 什么是广告联盟?
  • ABC378
  • 字段值为null就不返回的注解
  • 运动控制 编码器测速
  • JDK 安装、环境变量配置、nano 和 vim 的使用
  • 技术总结(二十一)
  • 2024毕业论文攻略:AI工具能为你带来哪些惊喜?
  • Halcon 从XML中读取配置参数
  • 聊一聊SpringBoot的自动装配原理
  • 去除人声的利器:消音伴奏软件合集
  • AB 罗克韦尔模块 SD3K2004K