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

笔记-前端

URL 输入到渲染的过程

域名解析,找到服务地址
构建 TCP 连接,若有 https,则多一层 TLS 握手,
特殊响应码处理 301 302
解析文档
构建 dom 树和 csscom
生成渲染树:从DOM树的根节点开始遍历每个可见节点,对于每个可见的节点,找到CSSOM树中对应的规则,并应用它们,根据每个可见节点以及其对应的样式,组合生成渲染树
Layout(回流):根据生成的渲染树,进行回流(Layout),得到节点的集合信息
Painting(重绘):根据渲染树及其回流得到的集合信息,得到节点的绝对像素。
绘制,在页面上展示,这一步还涉及到绘制层级、GPU相关的知识点
加载js脚本,加载完成解析js脚本

回流(重排)与重绘

回流:浏览器中的页面是采用流式布局来绘制的,从左到右,从上到下,当其中一个节点的空间属性发生了变化,那么就会影响到其他节点的空间布局,需要重新收集节点信息,再进行绘制,而这个过程及回流的过程,页面节点重新调整排列,因此也叫重排。
重绘:我们对页面节点元素的外观做处理的过程,例如修改颜色,背景,阴影等。
回流一定重绘,但重绘不一定回流
触发回流的场景
1.添加或删除可见的DOM元素
2.元素的位置发生变化
3.元素的尺寸发生变化(包括外边距、内边框、边框大小、高度和宽度等)
4.内容发生变化,比如文本变化或图片被另一个不同尺寸的图片所替代。
5.页面一开始渲染的时候(这肯定避免不了)
6.浏览器的窗口尺寸变化(因为回流是根据视口的大小来计算元素的位置和大小的)
获取位置信息,因为需要回流计算最新的值

回流的优化
对树的局部甚至全局重新生成是非常耗性能的,所以要避免频繁触发回流
现代浏览器已经帮我们做了优化,采用队列存储多次的回流操作,然后批量执行,但获取布局信息例外,因为要获取到实时的数值,浏览器就必须要清空队列,立即执行回流。
编码上,避免连续多次修改,可通过合并修改,一次触发
对于大量不同的 dom 修改,可以先将其脱离文档流,比如使用绝对定位,或者 display:none ,在文档流外修改完成后再放回文档里中
通过节流和防抖控制触发频率
css3 硬件加速,transform、opacity、filters,开启后,会新建渲染层

https://segmentfault.com/a/1190000021966814
https://juejin.cn/post/6844904073737535496

相关文章:

笔记-前端

URL 输入到渲染的过程 域名解析,找到服务地址 构建 TCP 连接,若有 https,则多一层 TLS 握手, 特殊响应码处理 301 302 解析文档 构建 dom 树和 csscom 生成渲染树:从DOM树的根节点开始遍历每个可见节点,对于…...

事务AOP

事物管理 事务管理是指对一系列数据库操作进行管理,确保这些操作要么全部成功执行,要么在遇到错误时全部回滚,以维护数据的一致性和完整性。在多用户并发操作和大数据处理的现代软件开发领域中,事务管理已成为确保数据一致性和完…...

RAM和ROM

1,RAM和ROM区别 RAM和ROM都是由来存储的,比如CPU缓存,电脑和手机内存等属于RAM,而固态硬盘,U盘,手机的128G,256G存储空间等都属于ROM。他们的最主要区别是RAM在断电后存储数据就没有了,而ROM在断电后存储数…...

聊聊系统架构之负载均衡优化实践

一、写在前面 最近在进行线上监控检查时,我遇到了两个超出预期的案例。首先,网关层的监控数据与应用实际监控数据存在不一致性,尤其是max有较大的差异,详见如下图。其次在某个应用中,通过httpclient请求某域名时发现只…...

代码规范性思考

表命名和设计 业务模块前缀;下划线分隔,体现业务含义;数据库字符集、字段名、类型、长度、默认值;一对一、一对多、多对多建表;注释清晰;良好的索引; 接口文档 swagger增强工具swagger-boots…...

TestProject Python SDK入门

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)-CSDN博客跳槽涨薪的朋友们有福了,今天给大家推荐一个软件测试面试的刷题小程序。​编辑https://…...

服务器数据恢复—EMC Isilon存储中被误删的虚拟机数据恢复案例

服务器存储数据恢复环境: EMC Isilon S200集群存储,共三个节点,每节点配置12块SATA硬盘。 服务器存储故障: 工作人员误操作删除虚拟机,虚拟机中数据包括数据库、MP4、AS、TS类型的视频文件等。需要恢复数据的虚拟机通…...

华为安全Security认证,你了解多少?

华为安全Security 认证包含HCIA-Security, HCIP-Security,HCIE-Security。HCIA-Security 掌握中小型网络信息安全基础知识与相关技术(华为防火墙技术、加解密技术、PKI 证书体系等),具备搭建小型企业信息安全网络的能力,实现中小企…...

自动驾驶规划-RTT* 算法 【免费获取Matlab代码】

目录 1.算法原理3.结果展示4.参考文献5.代码获取 1.算法原理 RRT(Rapidly-Exploring Random Trees) 快速随机扩展树,是一种单一查询路径规划算法。RRT 将根节点作为搜索的起点,然后通过随机撒点采样增加叶子节点的方式,生成一个随机扩展树&a…...

shell编程中的运算符的讲解

在Linux操作系统中也可以使用expr来进行一些数值的运算,expr接受表达式作为参数,并打印计算结果。 对于某些复杂的表达式或早期不支持内嵌算术表达式的Shell环境,expr 仍然是一个可行的选择。 如上图所示,是使用变量sum来承接加和…...

yudao-ui-admin-vue3 nginx配置

本文记录一个yudao-ui-admin-vue3 nginx配置信息 一、安装依赖 npm install 二、编译打包 npm run build:prod三、修改.env.prod文件 # 请求路径 VITE_BASE_URL=http://IP地址/admin-api四、 nginx配置 server {listen 80;server_name localhost...

vue3第四十节(pinia的用法注意事项解构store)

pinia 主要包括以下五部分,经常用到的是 store、state、getters、actions 以下使用说明,注意事项,仅限于 vue3 setup 语法糖中使用,若使用选项式 API 请直接查看官方文档: 一、前言: pinia 是为了探索 vu…...

PostgreSQL源码分析——索引扫描

这里,我们分析一下索引扫描的过程,以最简单的select * from t1 where a 100;语句为例,分析一下查询的过程。 postgrespostgres# \d t1;Table "public.t1"Column | Type | Collation | Nullable | Default ------------------…...

零基础入门学用Arduino 第四部分(一)

重要的内容写在前面: 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。个人把这个教程学完之后,整体感觉是很好的,如果有条件的可以先学习一些相关课程,学起来会更加轻松,相关课程有数字电路…...

x-anylabelimg如何标识人脸

软件地址,下载CPU版本就好 https://github.com/CVHub520/X-AnyLabeling/releases/tag/v2.0.0 一、打开软件选择的一个按钮,选择文件夹 二、选择模型运行 未下载的模型需要安全上网下载 选用Yolov6Lite_l-Face MeiTuan生成的文件格式,略作调…...

Element-ui中Table表格无法显示

Element-ui中Table表格无法显示 在使用过程中发现样式正常显示但是table就是不显示,研究了一段时间后,发现问题是项目结构的问题 当你创建vue和安装el的时候,一定要注意进入到正确的项目文件夹,如果在外面也出现一个package.jso…...

电信网关配置管理系统 del_file.php 前台RCE漏洞复现

0x01 产品简介 中国电信集团有限公司(英文名称“China Telecom”、简称“中国电信”)成立于2000年9月,是中国特大型国有通信企业、上海世博会全球合作伙伴。电信网关配置管理系统是一个用于管理和配置电信网络中网关设备的软件系统。它可以帮助网络管理员实现对网关设备的远…...

游戏心理学Day18

游戏玩家心理 在游戏世界中,设计师的工作总是围绕尽可能留住玩家要展开。在游戏创作时,设计师会假设目标诉讼的特点并激励迎合他们的需求,如果这种假设是经过实际调研之后做出的,那么就会比较接近实际情况而。如果这种假设是设计…...

发文章不违规的5种解决方案,非常适用,记得收藏!

之前以为使用AI写出来的文章,只要检测通过就不会违规,结果却还是让我有些失望。最近测试几款AI工具,测试结果都还是会存在违规情况,无法全文发布。 AI是听从人的指令,只能说是如何下指令,这个非常重要。至…...

【ARMv8/ARMv9 硬件加速系列 2.2 -- ARM NEON 的加减乘除(左移右移)运算】

文章目录 NEON 加减乘除NEON 加减乘除 下面代码是使用ARMv8汇编语言对向量寄存器v0-v31执行加、减、乘以及左移和右移操作的示例。 ARMv8的SIMD指令集允许对向量寄存器中的多个数据进行并行操作。v0和v1加载数据,对它们进行加、减和乘,左移和右移操作。最后,我们会将结果存储…...

[2024-06]-[大模型]-[Ollama]- WebUI

主要涉及要部署的前端webui是来源于:https://github.com/open-webui/open-webui 正常就使用: docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-web…...

AI智能盒子助力中钢天源设备工厂升级安全防护

中钢集团安徽天源科技股份有限公司成立于2002年3月27日,是中央企业中国中钢股份有限公司控股的上市公司,主导产品为永磁铁氧体器件、钕铁硼器件、四氧化三锰、锶铁氧体预烧料及各类磁选机等。 在中钢天源智能化升级过程中,采用并定制开发一系列厂区安全…...

RNN的变种们:GRULSTM双向RNN

上篇笔记记录到RNN的一个缺点:训练时会出现梯度消失,解决的办法是找到一个更优的计算单元。这里也有GRU和LSTM。 GRU(Gated Recurrent Unit)门控训练网络 什么是门控机制?就是对当前的输入进行一个筛选。门打开&…...

Linux网络-HttpServer的实现

文章目录 前言一、请求报文的解析URL的解析 二、响应报文的发送Content-LenthConten-TypeCookie和Set-CookieCookie的风险 三、尝试发送一个HTML网页404网页Location 重定向 四、浏览器的多次请求行为总结 前言 之前我们简单理解了一下Http协议,本章我们将在LInux下…...

GPT-4o的综合评估与前景展望

如何评价GPT-4o? GPT-4o作为OpenAI推出的最新一代大型语言模型,其性能、功能和应用前景都备受关注。以下是对GPT-4o的综合评估与前景展望: 一、技术性能评估 响应速度:GPT-4o在响应速度上有了显著提升,能够在极短的时间内对输入…...

私人云盘(自动云同步)

一、项目简介 模仿小米的云服务,实现一个通过TCP实现的私人云盘,因为能力有限,所以只实现自动云同步这一个功能,具体可以分为三个小功能,即保持云端和终端数据一致、实现文件的上传与下载以及手动同步 二、涉及到的知…...

【CMake】Linux 下权限丢失与软链接失效问题

【CMake】Linux 下权限丢失与软链接失效问题 文章目录 【CMake】Linux 下权限丢失与软链接失效问题问题概述解决方法1 - 安装目录2 - 安装文件3 - 手动指定 使用 Linux 下原生命令行注意事项参考链接 问题概述 一般使用 CMake 安装,在 Windows 平台不会出问题&…...

内部类介绍

内部类(Inner Class)是在另一个类的内部定义的类。它可以访问外部类的所有成员,包括私有成员。内部类有两种主要形式:局部内部类(定义在方法内部)和成员内部类(定义在类的内部,但不在…...

【CVPR2021】LoFTR:基于Transformers的无探测器的局部特征匹配方法

LoFTR:基于Transformers的局部检测器 0. 摘要 我们提出了一种新的局部图像特征匹配方法。我们建议先在粗略级别建立像素级密集匹配,然后再在精细级别细化良好匹配,而不是按顺序进行图像特征检测、描述和匹配。与使用成本体积搜索对应关系的密…...

总结一下 C# 如何自定义特性 Attribute 并进行应用

前言 Attribute(特性)是一种用于为程序元素(如类、方法、属性等)提供元数据信息的方法。 特性是一种声明式的信息,附加到程序元素上,提供额外的数据用于描述和控制这些元素的行为。 在编译和运行时&…...

wordpress 模板 国外/网络营销活动案例

最近在学Linux内核编译,在window10(版本1809)子系统下编译内核成功,想验证一下内核运行。验证过程中,在ubuntu子系统做文件系统挂时“sudo mount -o loop myinitrd4M.img rootfs”报错: mount: rootfs: mo…...

加强政府网站建设建议/做网站优化哪家公司好

在了解了TensorflowJS的一些基本模型的后,大家会问,这究竟有什么用呢?我们就用深度学习中被广泛使用的MINST数据集来进行一下手写识别的操作。MINST数据集MINST是一组0到9的手写数字。就像这个:这组数据出现在各种深度学习的入门和…...

wordpress邀请奖励/网页优化包括什么

中文名称:辛德勒名单英文名称:Schindlers List资源类型:MP3!发行时间:1994年简介:专辑介绍:这部斯蒂芬.斯皮尔伯格的旷世杰作使我们对他的艺术创造力不能不刮目相看,而以《星球大战》电影配乐而…...

马云为什么做网站/文明seo

Enumable类型是linq to object 是一个很特殊的类型 这个类型的数据源都是在程序的内存中 Queryable类型是 Linq to sql 对数据库进行操作都是这个类型 这个类型会生成表达式目录树 方法体只能有一行代码 Expression 表达式目录树 ///外链接 需要用join into …...

wordpress 推广 插件/杯子软文营销300字

java中日期时间类 1、Date类 ​ java.util 包提供了 Date 类来封装当前的日期和时间。 ​ Date 类提供两个构造函数来实例化 Date 对象。 ​ 第一个构造函数使用当前日期和时间来初始化对象。 Date()​ 第二个构造函数接受一个参数,该参数是从1970年1月1日起的…...

什么专业可以做网站/博客网站登录入口

发表期刊的过程当中,其实很多人都会遇到一些难题,比如说需要不断的修改,还有就是论文的投稿方式搞不清楚,总是不知道应该如何进行投稿如何发表期刊。现在发表论文,其实对很多人都是非常重要的,甚至会影响到…...