HTML渲染过程

整个渲染过程:

将 URL 对应的各种资源,通过浏览器渲染引擎的解析,输出可视化的图像。

基本概念:

HTML 解释器:解析html语言、将html文本翻译成dom树;

CSS 解释器:解析css语言,给dom树增加样式内容,为布局提供依据;

布局:将dom元素与css样式进行结合,计算出大小和位置;

JavaScript 引擎:js可以修改网页的内容、css信息,目的是将代码的逻辑对应到dom元素和css中,形成新的布局,改变渲染的结果;

基础流程:

1,解析html文件,生成dom树:

2,解析CSS文件,形成CSS对象模型:

3,将CSS与Dom元素进行对应,构建渲染树(Render tree):

4,布局和绘制Render tree:

存在问题:

1,将多次改变样式的行为合并成一次;

2,将需要多次触发重排的样式操作,改成绝对定位和固定定位,这样可以脱离文档流,它的改变不会改变其他元素的重排,比如动画操作时,设置成绝对定位;

3,设置成display为none的元素,不会进入渲染树,对于那种具备复杂逻辑的元素,可以优先隐藏它,等它计算完成后再显示,这样可以减少重排的次数,只在显示和隐藏的两个点进行重排,只会有两次;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/109312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JVM面试】从JDK7 到 JDK8, JVM为啥用元空间替换永久代?

系列文章目录 【JVM系列】第一章 运行时数据区 【面试】第二章 从JDK7 到 JDK8, JVM为啥用元空间替换永久代? 大家好,我是青花。拥有多项发明专利(都是关于商品、广告等推荐产品)。对广告、Web全栈以及Java生态微服务拥有自己独到…

Linux SVN 命令详解

1、将文件 checkout 到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.…

MySQL [基础] 学习笔记

MySQL 学习 文章目录 MySQL 学习1. 数据库三层结构2. 数据在数据库中的存储方式3. SQL 语句分类3.1 备份恢复数据库的表 4. Mysql 常用数据类型(列类型)4.1 数值型(整数)的基本使用4.2 数值型(bit)的使用4.3 数值型(小数)的基本使用4.4 字符串的基本使用(面试题)4.5 字符串使用…

2020年下半年~2022下半年下午题易错总结

2020年下半年 试题一: 1.组播报文对无线网络空口的影响主要有(14) ,随着业务数据转发的方式不同, 组播报文的抑制分别在 (15)、(16) 配置。 答案: (14)无线空口拥塞 (15)直连AP的交换…

软件测试需要学习什么?好学吗?需要学多久?到底是报班好还是自学好?

前言: 上篇文章看到很多小伙伴在讨论做测试到底怎么样, 其中很有很多的小伙伴还踩不少的坑,花费了大量的精力和时间去探索,结果还是一无所获。这里给大家出一期关于软件测试萌新的疑惑,看完这篇文章你就知道软件测试…

AR智能眼镜主板设计方案_AR眼镜PCB板设计

AR智能眼镜是一种采用先进技术的创新产品,具备强大的功能和性能。它采用了MTK8788八核 12nm低功耗硬件平台,搭载IMG GE830063OMhz或以上的GPU,并运行Android 11.0或以上的操作系统。该眼镜支持光波导1080P显示和LVDS接口自由曲面显示&#xf…

Linux命令(101)之nl

linux命令之nl 1.nl 介绍 linux命令nl用来将输出的文件内容自动加上行号 2.nl用法 nl [参数] filename nl常用参数 参数说明-b a输出内容都加上行号-b t只有非空行的输出加上行号,默认选项-n ln在最左方加上行号-n rn在最右方加上行号,且不加0-n rz在…

信钰证券:新增融券交易明显降温 业内称新规将平衡多类型投资者利益

10月14日,中国证监会发布调整优化融券相关准则的通知,沪深北买卖所齐发具体安排,阶段性收紧融券和战略出资者配售股份出借。其间,融券保证金比例进步自10月30日起实施,战略出资者配售股份出借收紧等其他条款自10月16日…

Java面试题-Java核心基础-第五天(面向对象基础)

目录 一、面向对象与面向过程的区别 二、创建一个对象用什么运算符,对象实体与对象引用有什么区别? 三、对象的相等和引用的相等有什么区别 四、如果一个类没有构造方法,程序能正常执行吗? 五、构造方法有什么特点&#xff0c…

爆肝整理,性能测试-非GUI模式执行Jemter压测,看这篇就够了...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、上传脚本 把在…

智慧公厕:探索未来城市环境卫生设施建设新标杆

智慧公厕是当代城市建设的一项重要举措,它集先进技术、人性化设计和智能管理于一体,为人们提供更为舒适、便捷和卫生的厕所环境。现代智慧公厕的功能异常丰富,从厕位监测到多媒体信息交互,从自动化清洁到环境调控,每一…

chatgpt图片识别、生成图片、语音对话多模态深度试玩

大模型替代人的工作的能力,越来越明显了。最近chatgpt支持多模态了,看这大佬们玩的不易乐乎,手痒也想试一试,因此有给openai上供了20刀。 另外我是gpt的拥护者,但是周围的同事有对此担忧,因为他们长期积累的…

Tengine 边缘AI计算框架移植RV1126(包括opencv的交叉编译)

目录 1.编译opencv 2.拷贝SDK源码到虚拟机 3. 拉取TIM-VX代码 4.拉取Tengine源码并配置 1.编译opencv 编译opencv是为了,在编译Tengine时指定OpenCVConfig.cmake,以便寻找特定的opencv动态库 01.从github拉取opencv源代码 git clone -b 4.5.5 https://github.co…

【AIFEM案例操作】水轮机转轮强度和模态分析

AIFEM是由天洑自主研发的一款通用的智能结构仿真软件,助力用户解决固体结构相关的静力学、动力学、振动、热力学等实际工程问题,软件提供高效的前后处理工具和高精度的有限元求解器,帮助用户快速、深入地评估结构的力学性能,加速产…

DICOM图像像素值、灰度值与CT值的解释及关系

​DICOM图像像素值、灰度值与CT值之间的关系可以通过以下方式进行解释: DICOM图像像素值:在DICOM图像中,像素值是用来表示图像信息的基本单位。这些值通常在0-4096的范围内,反映了图像的像素亮度。 DICOM图像灰度值:灰…

H264短期参考帧和长期参考帧

问题引出 最近在做短期参考帧的marking操作时发现一个问题,我的预期是用两个短期参考帧,其中一个短期参考帧为当前帧的前一帧,另一个为距离当前位置较远的一个帧。 在大多数的帧都没有问题,但是在个别帧的位置会发生参考帧列表中帧的顺序和预期不一致的情况,我在第28帧的…

SLAM算法中状态估计的算法有哪些?

状态估计 在SLAM(Simultaneous Localization and Mapping)中,状态估计是核心组件之一,其主要目的是估计机器人的轨迹(或姿态)和地图特征的位置。针对不同的传感器、场景和应用,已经发展出了多种状态估计方法。以下是一些主要的状态估计方法: 扩展卡尔曼滤波(Extended…

多测师肖sir_高级金牌讲师___python之json模块

python之json模块 python标准模块之json 定义:json (java script object notation)是轻量级的文本数据交换格式 案例json: json和字典 一样 一、json模块可以实现json数据的序列化和反序列化 (1)序列化…

Linux常用命令——comm命令

在线Linux命令查询工具 comm 两个文件之间的比较 补充说明 comm命令可以用于两个文件之间的比较,它有一些选项可以用来调整输出,以便执行交集、求差、以及差集操作。 交集:打印出两个文件所共有的行。求差:打印出指定文件所包…

django无法导入第三方库

引子 有的人可能会很困惑,为什么自己在pip中安装了某个包,但是在django中死活无法导入。 在cmd中能够导入。 启动django,总是无法导入。 本文将会用一分钟解决你的困惑。 正文 那么本文以上述的第三方库dj_db_conn_pool为例,…