资讯专栏INFORMATION COLUMN

reflow 和 repaint

greatwhole / 1201人阅读

摘要:浏览器解析基本流程浏览器解析的基本流程和,浏览器根据各种样式来计算并根据计算结果将元素放到确定的地方。完成之后,浏览器把这些元素按照各自的特性绘制一遍。

浏览器解析基本流程


浏览器解析的基本流程

reflow和repaint

reflow,浏览器根据各种样式来计算并根据计算结果将元素放到确定的地方。
repaint: relfow完成之后,浏览器把这些元素按照各自的特性绘制一遍。

引起reflow和repaint的操作 引起repaint的操作

一个元素的外观改变,但是没有改变布局的情况

visibility

outline

background color

引起reflow的操作

改变窗口大小

改变字体

增加和删除样式表

内容的改变,比如用户在输入框输入文字

激活伪类

操作class属性

脚本操作DOM

计算offsetWidth和offsetHeight

设置style属性

display:none 触发reflow,而visibility:hidden 触发repaint,因为没有发生位置变化

避免和最小化影响

直接改变你想改变的元素(避免通过父元素作用于子元素,而是直接作用于子元素)

避免黄色至内联样式

对于动画的元素,其position设为fixed或absolute

权衡速度的平滑,速度慢,reflow比较频繁

避免table布局

避免css中含有js 表达式(只有IE)

如何判断元素reflow或者repaint

使用chrome开发者工具timeline:
timeline

参考资料:

REFLOWS & REPAINTS: CSS PERFORMANCE MAKING YOUR JAVASCRIPT SLOW?

Repaint 、Reflow 的基本认识和优化 (2)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/49962.html

相关文章

  • 浏览器渲染那些事之 ReflowRepaint

    摘要:原文链接浏览器渲染那些事之浏览器内核渲染引擎在各个浏览器厂商你追我赶的形势下,截止今日,产生了很多不同的浏览器,各个浏览器本质大同小异,核心部分基本相似,由渲染引擎和引擎组成。 原文链接 浏览器渲染那些事之 Reflow、Repaint 浏览器内核(渲染引擎) 在各个浏览器厂商你追我赶的形势下,截止今日,产生了很多不同的浏览器,各个浏览器本质大同小异,核心部分基本相似,由渲染引擎和 J...

    morgan 评论0 收藏0
  • 前端性能之回流与重绘(reflow && repaint)

    摘要:写在金三银四之际。一个节点触发了,浏览器会检查中其他所有节点的显示方式一个节点触发了会导致它的祖先节点,后代节点以及在它之后的节点全部。对性能的影响大于。解决方式控制我们无力去改变,对性能损害的程度,我们能做的只有减少它们发生的次数。 写在金三银四之际。 因为种种原因想要谋求新的发展,不得已翻起了尘封已久的高程书;写起了各种经典CSS布局;回顾起记忆略显模糊的几个项目。感慨着太多太多...

    ytwman 评论0 收藏0
  • 【译】浏览器渲染:repaint,reflow/relayout,restyle

    摘要:屏幕的变化就被称为或者是。而浏览器的目标之一就是减少以及的负面影响,其中的一个策略就是干脆不做,又或者说至少不是现在做。但有时脚本语句会破化浏览器优化,并使其刷新队列以及执行所有批处理的改变。 **首先说翻译这篇文章的目的其实是,之前回答的关于浏览器js渲染的问题被打脸了 ಥ_ಥ ,不得不正视自己半路出家学前端的事实,所以这篇文章就算是自己的一个笔记吧,学而时习之,不亦乐乎,翻译错了,...

    godlong_X 评论0 收藏0
  • 【译】浏览器渲染:repaint,reflow/relayout,restyle

    摘要:屏幕的变化就被称为或者是。而浏览器的目标之一就是减少以及的负面影响,其中的一个策略就是干脆不做,又或者说至少不是现在做。但有时脚本语句会破化浏览器优化,并使其刷新队列以及执行所有批处理的改变。 **首先说翻译这篇文章的目的其实是,之前回答的关于浏览器js渲染的问题被打脸了 ಥ_ಥ ,不得不正视自己半路出家学前端的事实,所以这篇文章就算是自己的一个笔记吧,学而时习之,不亦乐乎,翻译错了,...

    mating 评论0 收藏0
  • 【译】浏览器渲染:repaint,reflow/relayout,restyle

    摘要:屏幕的变化就被称为或者是。而浏览器的目标之一就是减少以及的负面影响,其中的一个策略就是干脆不做,又或者说至少不是现在做。但有时脚本语句会破化浏览器优化,并使其刷新队列以及执行所有批处理的改变。 **首先说翻译这篇文章的目的其实是,之前回答的关于浏览器js渲染的问题被打脸了 ಥ_ಥ ,不得不正视自己半路出家学前端的事实,所以这篇文章就算是自己的一个笔记吧,学而时习之,不亦乐乎,翻译错了,...

    legendmohe 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<