提高网站的性能----回流与重绘
2019独角兽企业重金招聘Python工程师标准>>>
以前在写网页的时候很少关注到网站的性能,时间进入今天,一个网站不在是单纯几张图片或者几段文字,组成一个网站,今天的用户更加注重网站体验,所以写一个页面的时候网站的性能优化变得格外重要,作为一个前端的开发人员,一定的要对网站的每一个页面做到最大性能优化,今天的学习了一下如果提高网站性能重要的知识:
回流与重绘
----------------------------------------让你的网页快点在快点-----------------------------------------------
html中的每个tag都是dom 树中的1个节点,document(根节点)。
回流:
当视图中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重新构建。这就叫着回流(也可以叫做重新布局)
重绘:
当视图中的有些元素需要更新属性,而这些属性只是影响元素的外观,风格,而不会影响布局的,就叫着重绘
这里提到重要的一点: 回流一定会重绘,而重绘未必回流。
会产生回流或者重绘的操作:
1、添加、删除元素(回流+重绘)
2、隐藏元素 display:none,(回流+重绘),visibility:hidden(重绘,不回流)
3、移动元素:改变top,left,或者移动元素到另外1个父元素中(重绘+回流)
4、对style的操作()
5、改变浏览器的大小(回流+重绘)
浏览器在处理回流和重绘的时候,会把所有的引起回流、重绘的操作放入一个队列里面,一定数量或者时间间隔就会flush对象,这样就会让多次的回流、重绘变成一次回流重绘
减少回流、重绘
1.不要改变一个元素的样式属性,最后直接改变类名,类名是预先定义好的样式,不是动态的,你要动态的改变一些样式,可以使用字符串拼接形式进行改变
示例:
// 不好的写法
var left = 1;var top = 1;
el.style.left = left + "px";
el.style.top = top + "px";// 比较好的写法
el.className += " className1";// 比较好的写法
el.style.cssText += "; left: " + left + "px; top: " + top + "px;";
2.让要操作的元素的进行“离线处理”,
3.不要经常访问会引起浏览器fiush队列的属性,如果确实要访问,可以先对变量进行缓存,应聘哪的时候就可以直接读取变量
示例:
// 别这样写,大哥
for(循环) {
el.style.left = el.offsetLeft + 5 + "px";
el.style.top = el.offsetTop + 5 + "px";
}// 这样写好点
var left = el.offsetLeft,top = el.offsetTop,s = el.style;for(循环) {
left += 10;
top += 10;
s.left = left + "px";
s.top = top + "px";
}
4.一定要思考清除,操纵元素会影响到多少个节点,尽量减少对节点的影响,影响越多,就越耗费资源、
转载于:https://my.oschina.net/u/1403169/blog/202440
提高网站的性能----回流与重绘相关推荐
- 前端性能优化—回流与重绘
前端性能优化-回流与重绘 一.回流 当渲染树中部分或者全部元素的尺寸.结构或者属性发生变化时,浏览器会重新渲染部分或者全部文档的过程就称为回流. 下面这些操作会导致回流: 页面的首次渲染 浏览器的窗口 ...
- 性能优化之回流_重绘
回流与重绘 当render树中的元素发生尺寸.布局.隐藏等变化时就需要重新构建.当页面布局和几何属性发生变化时就需要回流. 当render树中的一些元素更新属性,而属性只是影响外观风格时,不会影响布局 ...
- 浏览器渲染页面的原理、回流、重绘
目录 一.浏览器的渲染过程 1.面试题 (1).DNS 域名解析 (2).建立 TCP 连接 (3).发送 HTTP 请求 (4).处理请求返回的 HTTP 响应 (5).页面渲染 (6).关闭 TC ...
- javascript --- [读书笔记] 回流与重绘 前端优化小结
1. 浏览器渲染原理 请说出: 从用户在浏览器地址输入网址,到看整个页面,中间都发生了哪些事情? HTTP请求阶段 HTTP响应阶段 浏览器渲染阶段 1.1 可能用到的知识 1.1.1 进程 Proc ...
- android 重绘如何能不闪一下屏幕_回流和重绘
浏览器的渲染过程 本文先从浏览器的渲染过程来从头到尾的讲解一下回流重绘,如果大家想直接看如何减少回流和重绘,优化性能,可以跳到后面.(这个渲染过程来自MDN) 从上面这个图上,我们可以看到,浏览器渲染 ...
- 前端面试中浏览器相关问题(二):回流与重绘
前端面试中浏览器相关问题(二):回流与重绘 文章目录 前端面试中浏览器相关问题(二):回流与重绘 浏览器的渲染过程 生成渲染树 回流 重绘 何时发生回流重绘 浏览器的优化机制 减少回流和重绘 最小化重 ...
- 页面渲染之回流与重绘讲解
文章目录 浏览器的渲染过程 生成渲染树(Render Tree) 回流(Layout或Reflow) 重绘(Painting) 何时发生回流重绘 浏览器的优化机制 减少回流和重绘 合并样式的修改 批量 ...
- 回流和重绘的介绍以及优化方法
文章目录 一.浏览器的渲染机制 1.生成渲染树的过程 二.回流和重绘 1.回流(reflow) 2.重绘(repaint) 3.何时发生回流.重绘 三.减少回流和重绘 1.浏览器的优化机制 2.使用浏 ...
- 浏览器的回流与重绘 (Reflow Repaint)
参考<极客学院--浏览器工作原理与实践> 渲染流程大致可总结为如下: 1. 渲染进程将 HTML 内容转换为能够读懂的 DOM 树结构. 2. 渲染进程将 CSS 样式表转化为浏览器可以理 ...
最新文章
- 连接统计学、机器学习与自动推理的新兴交叉领域——因果科学读书会再起航...
- 算法---字符串去重
- python提取图像的每一帧
- 图像处理:像素间的基本关系
- Mips TLB miss异常
- 最优化课程(part1)
- Deep Learning运行所需的硬件配置(转)
- 当你「ping 一下」的时候,你知道它背后的逻辑吗
- java求期望_Java 11的期望
- oracle正则匹配全部,sql – 返回Oracle中正则表达式的所有匹配项
- 互联网日报 | 理想汽车交付量突破30000辆;美团王慧文正式退休;寺库打造首个奢侈品直播基地...
- 计算机工作操作中一些问题,计算机二级考试中操作题常见问题之[电子表格]
- eax ...edi esp ebp寄存器简介(转)
- sql2012 ssrs_您必须在SQL Server Reporting Services(SSRS)中记录的十件事
- 实现基于内核栈切换的进程切换-linux011
- 【三维路径规划】基于matlab改进粒子滤波无人机三维路径规划【含Matlab源码 1269期】
- mysql 只显示箭头_为什么在DOS窗口中使用MySQL时,输入命令后只出现一个箭头,输入什么内容都是这样?...
- renpy 如何执行2个action_可执行的网络推广方案如何策划 8个维度 学会了策划方案不求人...
- 18650锂电池充电方案及保护板电路构思
- python小工具—图片拼接PDF