博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
web前端优化之reflow(减少页面的回流)
阅读量:6443 次
发布时间:2019-06-23

本文共 646 字,大约阅读时间需要 2 分钟。

1、什么是reflow?

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

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

 

以下操作会引起回流:

① 改变窗口大小

② font-size大小改变

③ 增加或者移除样式表

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

⑤ 激活CSS伪类(:hover)

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

⑦ js操作dom

⑧ offset相关属性计算

⑨ 设置style的值

......

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

 

推荐第三种,避免第一种

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

② 具有动画效果请使用absolute

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

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

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

⑤ 在最末改变元素

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

⑥ 动画移动时候,要控制

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

转载于:https://www.cnblogs.com/GreenLeaves/p/6509398.html

你可能感兴趣的文章
查看mysql所有用户的权限
查看>>
真正的inotify+rsync实时同步 彻底告别同步慢
查看>>
Java基础-第6天
查看>>
git stash
查看>>
voltdb 记录存在时候更新,不存在时候插入
查看>>
Git 使用规范流程
查看>>
源码安装
查看>>
android 设置LinearLayout,RelativeLayout等等layout的高和宽
查看>>
实施第7天 sql server 2008 利用 mdf 和ldf 文件还原数据库
查看>>
约瑟夫环的问题
查看>>
55博客建立了首次建立博客大家多多支持
查看>>
关于"#define new DEBUG_NEW"
查看>>
线性插值之双线性插值与三线性插值
查看>>
TCP、UDP、HTTP、SOCKET之间的区别与联系
查看>>
ios 拨打电话系统回调函数
查看>>
JAVASCRIPT对数组简单处理
查看>>
PHP实现留言板功能的思路
查看>>
apache默认虚拟主机
查看>>
0.osframe框架启动入门说明
查看>>
【gin-05】 GIN-使用jsoniter构建
查看>>