美文网首页
浏览器,渲染原理 & 事件循环原理

浏览器,渲染原理 & 事件循环原理

作者: Poppy11 | 来源:发表于2023-06-07 15:56 被阅读0次

什么是进程?

每个正在运行的程序都是一个进程,每个应用至少有一个进程,每个进程都是一个独立的空间,如果进程之间需要通信数据,则需要借助操作系统提供的进程间通信(IPC)机制来通信。

什么是线程?

线程是进程中的一个执行单元,可以理解为一个执行空间。一个进程至少有一个线程去运行代码,如果需要同时执行多块代码,则需要启动更多线程。

浏览器有哪些进程和线程?

浏览器是多进程多线程的应用

  1. 浏览器进程
    管理用户界面、维护浏览器控制栏、处理用户输入、打开窗口、加载和管理网页等。
  2. 网络进程
    负责加载网络资源。
  3. 渲染进程
    一个标签页一个渲染进程(进程之间是隔离的)。渲染进程启动后,会开启一个渲染主线程。主线程负责执行HTML、CSS、JS代码。

如何理解JS的异步?

JS是一门单线程的语言,这是因为它运行在浏览器的渲染主线程中,而渲染主线程只有一个。渲染主线程承担着诸多工作,渲染页面,执行JS等。 如果使用同步的方式,就可能导致主线程产生阻塞,从而导致消息队列的。

浏览器是如何渲染页面的

当浏览器的网络进程收到HTML文档后,会产生一个渲染任务,会传递给渲染主线程的消息队列,在事件循环的机制下,渲染主线程取出渲染任务,并执行。

  1. 解析HTML
    解析过程中遇到CSS解析CSS,遇到JS解析JS,为了提高效率,浏览器开始解析前,会启动一个预解析的线程,率先下载HTML中的外部CSS文件和外部的JS文件。

    • 主线程解析到Link位置时,主线程不会等待。这是因为下载和解析CSS是在预线程中进行。所以CSS解析不会阻塞HTML解析。
    • 主线程解析到script位置时,会停止解析,等待JS执行完成,才会继续解析HTML,这是因为JS代码可能会修改DOM节点,所以DOM树的生成必须暂停。
      最终会得到DOM树和CSSOM树。
  2. 样式计算
    在这一步中,很多预设值会变成绝对值,例如red会变成rgb(255,0,0),比如em会变成px。
    这一步完成后,会得到带有样式的dom树。

  3. 布局
    布局阶段会依次遍历dom树的每一个节点,生成布局树。但他们不是一一对应的关系,例如dom树有元素为display:none,就不会生成到布局树。例如伪元素选择器,虽然dom树不存在这些伪元素节点,但是布局树会存在。

  4. 绘制
    将布局树转换为屏幕上的像素,实现页面的绘制。在绘制时,浏览器遍历布局树,将每个节点绘制到屏幕上,同时为每个节点生成图形和颜色信息。

什么是reflow(回流)?

reflow的本质是重新绘制layout树,主要是修改了几何信息,例如修改宽度,修改字体大小,删除dom元素等等。
为了避免连续多次操作导致布局树反复计算,浏览器会合并这些操作。所以改动属性造成的reflo是异步的,例如通过JS修改元素的宽度。

什么是repaint(重绘)?

当改变了可见样式后,例如修改文字颜色等,就会产生重绘,由于元素的布局信息也属于可见样式,所以回流一定会导致重绘。

相关文章

  • 前端部分面试题整理

    (持续更新中) 1、js事件循环(vue.nextTick原理也差不多) 2、浏览器渲染流程 3、原型链 4、什么...

  • 浏览器原理相关视频课程

    大话浏览器渲染原理浏览器渲染原理和打开网页机制HTTPS 网络协议原理解析从零开始,彻底掌握浏览器渲染原理深入V8...

  • 前端性能优化-渲染优化

    一、浏览器渲染原理和关键渲染路径 浏览器渲染原理:读取html,css文本,构建DOM树。(DOM ,CSSOM)...

  • 略知一二之浏览器渲染原理

    浏览器渲染原理 推荐相关阅读文章 浏览器页面渲染机制,你真的弄懂了吗? 关键渲染路径 深入浅出浏览器渲染原理 [译...

  • 公开课一、浏览器渲染原理 ------ 2020-03-07

    1、知识铺垫: 2、框架性叙述浏览器渲染原理: 3、根据浏览器的渲染原理我们能做的性能优化:

  • css渲染原理

    css渲染原理 浏览器渲染原理浏览器接收到服务器返回的html页面。浏览器开始构建DOM树(DOM TREE),遇...

  • 关于 JavaScript 事件循环 Event Loop 的一

    浏览器 JavaScript 执行流程以及在 Node.js 中都是基于事件循环的。 了解事件循环的工作原理对于正...

  • 浏览器渲染机制

    参考链接:浏览器渲染的那些事(一)浏览器内部工作原理浏览器的渲染原理简介有关网页渲染,每个前端开发者都该知道的那点...

  • CSS动画

    Get Started • 动画的原理• 浏览器渲染原理• CSS动画优化• transform全解• trans...

  • 2017前端面试题之综合篇(1)

    1 . 浏览器如何渲染? 浏览器的渲染原理简介 专题:浏览器:渲染重绘、重排两三事 浏览器加载和渲染HTML的顺序...

网友评论

      本文标题:浏览器,渲染原理 & 事件循环原理

      本文链接:https://www.haomeiwen.com/subject/xvvvjdtx.html