首页 > 其他分享 >重排和重绘

重排和重绘

时间:2024-03-19 21:57:18浏览次数:31  
标签:DOM 元素 重绘 改变 重排 节点

重绘与重排的

  • 重排: 部分渲染树(或者整个渲染树)需要重新分析并且节点尺寸需要重新计算,表现为重新生成布局,重新排列元素
  • 重绘: 由于节点的几何属性发生改变或者由于样式发生改变,例如改变元素背景色时,屏幕上的部分内容需要更新,表现为某些元素的外观被改变

单单改变元素的外观,肯定不会引起网页重新生成布局,但当浏览器完成重排之后,将会重新绘制受到此次重排影响的部分

重排和重绘代价是高昂的,它们会破坏用户体验,并且让UI展示非常迟缓,而相比之下重排的性能影响更大,在两者无法避免的情况下,一般我们宁可选择代价更小的重绘。

『重绘』不一定会出现『重排』,『重排』必然会出现『重绘』。

如何触发重排和重绘?

任何改变用来构建渲染树的信息都会导致一次重排或重绘:

  • 添加、删除、更新DOM节点
  • 通过display: none隐藏一个DOM节点-触发重排和重绘
  • 移动或者给页面中的DOM节点添加动画
  • 添加一个样式表,调整样式属性
  • 用户行为,例如调整窗口大小,改变字号,或者滚动。
  • 通过visibility: hidden; opacity: 0隐藏一个DOM节点-只触发重绘,因为没有几何变化

标签:DOM,元素,重绘,改变,重排,节点
From: https://www.cnblogs.com/zhanxinbing/p/18083930

相关文章

  • L2-022 重排链表
    这道题真的烦,输出想半天。反正就是要区分奇偶,才能知道那个结点最后要打印出-1.我看网上遇到的都是测试点3的问题,不过我有问题的是测试点1,前三个出问题就是节点数奇偶的问题。#include<bits/stdc++.h>usingnamespacestd;map<int,pair<int,int>>mp;intmain(){ ints......
  • 什么是指令重排?
    指令重排(InstructionReordering)是计算机编译器和处理器在执行程序时对指令顺序进行重新排序的优化技术。它的目的是提高程序的性能和并行度,但可能会导致意想不到的结果,特别是在多线程环境下。指令重排是基于两个原则进行的:数据依赖原则(DataDependencyPrinciple):指令之间存在......
  • 句子嵌入: 交叉编码和重排序
    这个系列目的是揭开嵌入的神秘面纱,并展示如何在你的项目中使用它们。第一篇博客介绍了如何使用和扩展开源嵌入模型,选择现有的模型,当前的评价方法,以及生态系统的发展状态。第二篇博客将会更一步深入嵌入并解释双向编码和交叉编码的区别。进一步我们将了解检索和重排序的理论。我......
  • 深入浅出Java多线程(七):重排序与Happens-Before
    引言大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第七篇内容:重排序与Happens-Before。大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!!在上一篇文章中,我们简单提了一下重排序与Happens-Before。在这篇文章中我们将深入讲解一下重排序与Happens-Before,然......
  • 143. 重排链表(中)
    目录题目题解:双指针+翻转链表题目给定一个单链表L的头节点head,单链表L表示为:L0→L1→…→Ln-1→Ln请将其重新排列后变为:L0→Ln→L1→Ln-1→L2→Ln-2→…不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。题解:双指针+翻转......
  • 浏览器的回流(重排)和重绘,以及如何优化
    浏览器的回流(重排)和重绘 1、浏览器解析HTML生成DOM树,解析CSS生成CSSDOM树2、如何DOM树和CSSDOM树合并构建渲染树3、然后经过回流(回流主要是计算元素的形状、位置大小)4、然后再经过重绘(重绘就是转化为屏幕上的实际像素,来达到页面展现的目的)  引起回流的动作有: 浏......
  • [前端] 重排和重绘
    网页的生成过程解析HTML,生成DOM树。解析CSS,生成CSSOM树。结合DOM树和CSSOM树,为每一个节点计算CSS属性,生成渲染树,RenderTree。生成布局(Flow),计算渲染树上所有节点的位置。将布局绘制(Paint)到屏幕上。布局生成和绘制的过程就是渲染。网页生成的时候至少渲染一次。用户交互......
  • AttentionFreeTransformer 核心结构图(GraphViz 重绘)
    AFTFulldigraphAFTFull{ rankdir=BTnode[ style=filled, color=Black fontcolor=White, fillcolor="#30638e", fontname="SimHei", fontsize=32, width=5,height=2, ]inp[label="输入\n[BatchSize,\nSeqLen,......
  • 【重排链表】双指针+反转链表+合并链表
    leetcode143.重排链表题意:给定一个单链表L的头节点head,单链表L表示为:L0→L1→…→Ln-1→Ln请将其重新排列后变为:L0→Ln→L1→Ln-1→L2→Ln-2→…不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。题解:可以发现重新排列的链......
  • 1387. 将整数按权重排序(递归 +记忆化+排序)
    Problem:1387.将整数按权重排序我们将整数x的权重定义为按照下述规则将x变成1所需要的步数:如果x是偶数,那么x=x/2如果x是奇数,那么x=3*x+1比方说,x=3的权重为7。因为3需要7步变成1(3-->10-->5-->16-->8-->4-->2-->1)。给你三个整数......