首页 > 其他分享 >浏览器的渲染机制

浏览器的渲染机制

时间:2023-02-11 23:01:28浏览次数:44  
标签:浏览器 渲染 节点 改变 回流 机制 重绘

浏览器渲染机制

  1. 解析html代码,构建DOM树(包含整个页面节点的层级)。
  2. 解析css代码,构建CSSOM(CSS Object Model,CSS对象模型)
  3. 合并DOM树和CSSOM,生成render渲染树。
  4. 根据render渲染树进行布局
  5. 调用GPU对渲染树进行绘制,合成图层展示。(最耗时,主要优化点)

tips:

  • 其中JS脚本(script标签)会阻塞间隙,所以将脚本放在网页尾部会加速渲染。
  • 可以通过优化重绘和回流来减少响应的页面的渲染时间。

回流和重绘

重绘是当节点需要更改外观而不会影响布局的,比如改变 color 就叫称为重绘

回流是布局或者几何属性需要改变就称为回流。

回流必定会发生重绘,重绘不一定会引发回流。回流所需的成本比重绘高的多,改变深层次的节点很可能导致父节点的一系列回流
元素样式改变 会导致重绘 元素大小或者位置改变会导致回流

常见触发回流

  • 添加或删除可见的DOM元素
  • 元素尺寸改变——边距、填充、边框、宽度和高度
  • 内容变化,比如用户在input框中输入文字
  • 浏览器窗口尺寸改变——resize事件发生时
  • 元素尺寸改变——边距、填充、边框、宽度和高度
  • 设置其他style属性的值

标签:浏览器,渲染,节点,改变,回流,机制,重绘
From: https://www.cnblogs.com/wanglei1900/p/17112753.html

相关文章

  • 浏览器中HTTP请求流程是如何处理的
    HTTP是一种允许浏览器向服务器获取资源的协议,是Web的基础,通常由浏览器发起请求,用来获取不同类型的文件,例如HTML文件、CSS文件、JavaScript文件、图片、视频等。浏览......
  • EXPORT_SYMBOL机制
    Linux内核由主内核ELF格式文件(vmlinux)和许多内核模块组成。在构成vmliunx主内核文件中,每一个被声明EXPORT_SYMBOL的符号,都只有一个目的,就是让vmlinux主内核文件之外的内......
  • WPF数据绑定机制是如何实现 转载
    转载自https://blog.51cto.com/u_15127553/4275829 接触MVVM模式也有一段时间了,这种将前后台分离开了的设计模式一下子就吸引了我,也是当时一直有一个问题困扰了我很久:WP......
  • 6.2 RLE算法的机制
    把文件内容用“数据×重复次数”的形式来表示的压缩方法称为RLE(RunLengthEncoding,行程长度编码)算法(图6-2) RLE算法是一种很好的压缩方法,经常被用于压缩传真的图像......
  • 【你的组织浏览器已托管】如何解决?图文讲解
    解决Edge、Google浏览器“你的组织浏览器已托管”或“由贵单位管理”起因:今天无意中用到Google浏览器需要扩展一个插件(平时用Edge)发现国内已经不支持下载插件了,然后就......
  • Unity Shader 风格化水体渲染
    风格化渲染(stylizedrendering)的具体定义我没能找到,但是在一些文章中,风格化渲染就是指那些非写实的(NonPhotorealisticRendering)渲染。其中卡通风格的渲染(ToonShad......
  • printf的缓冲机制
    printf的缓冲机制参考链接:https://www.cnblogs.com/sinferwu/p/12426410.htmlprintf是C库函数,是对系统调用write的封装,有其特有的缓冲机制。printf函数实际上只是输出到......
  • 真实感渲染:训练营2
    大家好~本课程为“真实感渲染”的线上课程,从0开始,介绍相关的图形学算法和数学基础,给出详细的数学推导、伪代码和实现代码,最终带领大家开发出基于物理的渲染器线上课程资料......
  • JQuery插件机制
    jQuery-插件机制增强JQuery的功能1.实现方式:1.$.fn.extend(object)增强通过Jquery获取的对象的功能$("#id")2.$.extend(object)......
  • 前端知识学习案例-浏览器得工作原理
      ......