如何减少浏览器的reflow和repaint


Posted in Javascript onFebruary 26, 2015

1.避免在document上直接进行频繁的DOM操作,如果确实需要可以采用off-document的方式进行,具体的方法包括但不完全包括以下几种:

(1). 先将元素从document中删除,完成修改后再把元素放回原来的位置
(2). 将元素的display设置为”none”,完成修改后再把display修改为原来的值
(3). 如果需要创建多个DOM节点,可以使用DocumentFragment创建完后一次性的加入document

2.集中修改样式

(1). 尽可能少的修改元素style上的属性
(2). 尽量通过修改className来修改样式
(3). 通过cssText属性来设置样式值

3. 缓存Layout属性值

对于Layout属性中非引用类型的值(数字型),如果需要多次访问则可以在一次访问时先存储到局部变量中,之后都使用局部变量,这样可以避免每次读取属性时造成浏览器的渲染。
var width = el.offsetWidth; var scrollLeft = el.scrollLeft;

4.设置元素的position为absolute或fixed

在元素的position为static和relative时,元素处于DOM树结构当中,当对元素的某个操作需要重新渲染时,浏览器会渲染整个页面。将元素的position设置为absolute和fixed可以使元素从DOM树结构中脱离出来独立的存在,而浏览器在需要渲染时只需要渲染该元素以及位于该元素下方的元素,从而在某种程度上缩短浏览器渲染时间,这在当今越来越多的Javascript动画方面尤其值得考虑。

以上就是个人总结的一些关于减少浏览器reflow和repaint的事项,希望大家能够喜欢。

Javascript 相关文章推荐
解析prototype,JQuery中跳出each循环的方法
Dec 12 Javascript
Angularjs制作简单的路由功能demo
Apr 14 Javascript
jquery图片滚动放大代码分享(1)
Aug 25 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
Jan 12 Javascript
jQuery使用中可能被XSS攻击的一些危险环节提醒
May 24 Javascript
详解MVC如何使用开源分页插件(shenniu.pager.js)
Dec 16 Javascript
JavaScript定义全局对象的方法示例
Jan 12 Javascript
jQuery页面弹出框实现文件上传
Feb 09 Javascript
jQuery中$原理实例分析
Aug 13 jQuery
详解实现一个通用的“划词高亮”在线笔记功能
Apr 23 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
Jul 24 Javascript
vue实现div单选多选功能
Jul 16 Javascript
详谈javascript中DOM的基本属性
Feb 26 #Javascript
jqueryUI里拖拽排序示例分析
Feb 26 #Javascript
Jquery的基本对象转换和文档加载用法实例
Feb 25 #Javascript
jQuery操作JSON的CRUD用法实例
Feb 25 #Javascript
javascript实现复选框超过限制即弹出警告框的方法
Feb 25 #Javascript
javascript获得当前的信息的一些常用命令
Feb 25 #Javascript
javascript实现图像循环明暗变化的方法
Feb 25 #Javascript
You might like
php配合jquery实现增删操作具体实例
2013/12/12 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
php查询相似度最高的字符串的方法
2015/03/12 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
javascript内置对象arguments详解
2014/03/16 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
详解微信小程序回到顶部的两种方式
2019/05/09 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
2020/02/14 Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
2020/09/01 Javascript
Vue组件简易模拟实现购物车
2020/12/21 Vue.js
python读文件保存到字典,修改字典并写入新文件的实例
2018/04/23 Python
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
Python实现将通信达.day文件读取为DataFrame
2018/12/22 Python
python统计指定目录内文件的代码行数
2019/09/19 Python
Python input函数使用实例解析
2019/11/22 Python
python 实现任务管理清单案例
2020/04/25 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
Python3爬虫带上cookie的实例代码
2020/07/28 Python
python设置中文界面实例方法
2020/10/27 Python
Python中的流程控制详解
2021/02/18 Python
HTML5 Web 存储详解
2016/09/16 HTML / CSS
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
阿迪达斯奥地利官方商城:adidas.at
2016/10/16 全球购物
澳大利亚女士时装在线:Rockmans
2018/09/26 全球购物
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
小学班主任评语大全
2014/04/23 职场文书
环保口号大全
2014/06/12 职场文书
美术专业自荐信
2014/07/07 职场文书
药店采购员岗位职责
2014/09/30 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
党员转正介绍人意见
2015/06/03 职场文书
三国演义读书笔记
2015/06/25 职场文书
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技
Python中的程序流程控制语句
2022/02/24 Python