1、什么是reflow?

reflow(回流)是指浏览器为了重新渲染部分或者全部的文档,重新计算文档中的元素的位置和几何构造的过程。

因为回流可能导致整个Dom树的重新构造,所以是性能的一大杀手。

以下操作会引起回流:

① 改变窗口大小

② font-size大小改变

③ 增加或者移除样式表

④ 内容变化(input中输入文字会导致)

⑤ 激活CSS伪类(:hover)

⑥ 操作class属性,新增或者减少

⑦ js操作dom

⑧ offset相关属性计算

⑨ 设置style的值

......

reflow与repaint是减缓js的几大主要原因,尤其是reflow更是性能杀手,所以我们应该想法避免。

<style type="text/css">.changeStyle { width: 100px; height: 100px; }
</style>
<script type="text/javascript">$(document).ready(function () {var el = $('id');//1el.css('width', '100px');el.css('height', '100px');//2el.css({ 'width': '100px;', 'height': '100px;' });//3 el.addClass('changeStyle');});
</script>

推荐第三种,避免第一种

以上几种做法,我这里弱弱的推荐第三种,避免第一种。

② 具有动画效果请使用absolute

因为absolute元素的改变对其它元素的回流影响不大,所以我们的动画效果的元素还是将他搞成absolute吧。

③ 避免使用表格布局(记住只是布局哦,我们数据还是应该用表格的)

④ 请绝对不要使用CSS表达式,性能杀手啊,特别是IE

⑤ 在最末改变元素

因为回流是自上而下的,所以下不及上,我们在最后面修改信息对全局影响越少。

⑥ 动画移动时候,要控制

比如我们拖动元素时候,我是在他x或者y坐标改变5px才操作,这样虽说降低了平滑度,但是对性能有提高。

reflow(减少页面的回流)相关推荐

  1. 如何减少页面的重绘和回流(14)

    一.减少页面重绘和回流的方法 1.尽量使用css属性简写:如:用boder代替boder-width,boder-style,boder-color 2.批量修改元素样式 elem.className ...

  2. 页面 渲染 回流 测试 笔记

    页面重绘(repaints),回流(reflow),网上已经有很多介绍了,以前也只是看看,并没有仔细理解,所以现在留点笔记 一些有用的连接 http://www.zhangxinxu.com/word ...

  3. reflow(重排、回流)和repaint(重绘)

    reflow和repaint的区别: reflow:浏览器需要去渲染,当它发现某个dom发生了变化不仅仅改变自身,会导致后面的元素位置全部改变并且影响了布局,则需要倒回去重新渲染: repaint:不 ...

  4. Web前端优化最佳实践及工具集锦(如减少页面加载时间)

    前端的性能对于一个Web应用来说非常重要,如果一个Web应用的页面加载速度非常快.对于用户的操作可以及时响应,那么产品的用户体验将会极大地提升.下图显示了页面加载速度对于用户体验的影响. 你的Web页 ...

  5. 如何减少页面加载时间(前端性能优化)

    关于优化都会问到的问题,总结了以下几个方法: 减少重复的HTTP请求 (1)减少调用其他页面.文件的数量,将多个小文件合并为一个大文件 (2)精灵图(sprite) 将需要频繁加载的多个图片合成为1个 ...

  6. grunt 压缩 html,如何使用 grunt 插件压缩合并 js ?减少页面请求数的秘诀

    本博客不欢迎:各种镜像采集行为,请尊重知识产权法律法规.大家都是程序员,不要闹得不开心. 安装好grunt后,苏南大叔下一步的计划就是配置Gruntfile.js这个配置文件.在这个文件中,苏南大叔采 ...

  7. oracle数据回流,页面的回流与重绘

    前端面试中"页面的回流与重绘"是性能优化方面经常考察的一个知识点.今天总结一下,有不对或者不全面的地方欢迎指正- 1 页面怎么呈现? 在讨论页面重绘.回流之前,需要对页面的呈现流程 ...

  8. web页面的回流,认识与避免

    一.什么是回流? 回流是会导致页面重新渲染的一些元素,从而影响性能. 二.哪些因素会导致回流? 1.调整窗口的大小: 2.改变字体,如果用rem  设置了根目录的字体大小,这样就减少了回流的次数: 3 ...

  9. HTML:减少页面加载时间的方法

    1. 重复的HTTP请求数量应尽量减少 (1)减少调用其他页面.文件的数量. (2)在使用css格式时,常会采用background载入图形文件,而每个background的图像都会产生1次HTTP ...

最新文章

  1. 在Ubuntu 14.04 64bit上安装redis 3.0.3
  2. mysql 安装更改目录权限设置密码_mysql-8.0 安装教程(自定义配置文件,密码方式已修改)...
  3. likelihood(似然) and likelihood function(似然函数)
  4. 轮播图js怎么设置图片自适应大小
  5. oracle查询排序asc/desc 多列 order by
  6. Pool construction UVA - 1515 最小割模型
  7. matlab将模型解封装,模型保护 - MATLAB Simulink - MathWorks 中国
  8. linux shmmax单位,Linux核心参数Shmmax,shmall,shmni
  9. 深度优先搜索——八皇后问题(洛谷 P1219)
  10. 人不能轻易暴露自己的底牌,否则会陷入被动的局面
  11. 公安信息通信网边界接入平台安全规范_【市场动态】3.56 亿元,阿里云中标青岛智慧公安项目...
  12. 基础学习day03---程序结构与控制、函数与数组入门
  13. AtCoder Beginner Contest 171 A - αlphabet
  14. IBMX3850X5服务器安装2008R2系统
  15. 昆仑通态屏幕制作(连载1)---接触篇
  16. win10如何查看服务器日志文件,win10日志文件在哪里?小编教你查看win10日志文件的方法...
  17. Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  18. ReSharper未按照预期路径安装后如何修改(Windows 找不到“C:\Program Files (x86)\JetBrains\Installations”。请检查拼写并重试)
  19. lol计算机内存,电脑内存快满了,在玩LOL是弹出内存不足。然后清理了下内存设置了下虚拟内存后电脑出现滴咚的声音并卡机...
  20. R语言:批量获取指定股票代码的股票数据

热门文章

  1. 前端html+css: 3D滚动正方体————按住鼠标左键即可拖动
  2. Java程序设计---实验4
  3. 【技能树】C语言技能树测评
  4. Uncaught TypeError: Cannot read properties of undefined (reading ‘push‘)和Uncaught TypeError: Canno
  5. Android端基于MTCNN和mobilefacenet的人脸识别
  6. buildroot简介
  7. 怎样恢复手机备忘录的里误删的内容?
  8. 妈妈十分生气的shooow
  9. git head指向老版本_git checkout之一 HEAD基本和detached 状态
  10. Vite HMR原理解析