前端性能优化-减少重绘

来源:互联网 发布:成考与网络教育 编辑:程序博客网 时间:2024/06/05 03:59

对网站进行性能优化,一个非常有效的方法就是减少浏览器对网页的重绘次数。

关于重绘

在浏览器渲染引擎绘制完网页后,动态的更改DOM结构或CSS样式会引发浏览器页面的重绘。性能损耗的大小取决于动态改动范围的大小。如果是改动一个元素的背景颜色,那就只会引发这一个元素的重绘,但是如果是改动一个元素的宽高或者位置,那就会引发DOM树结构中大量的重绘,因为它影响了兄弟元素的排列。
比如改动DOM的话要考虑改动的元素在DOM树中的深度。越深就越独立,对其他改动影响越小。而且如果要对DOM有多次操作的话,尽量合并到一次做完而不是多次。

例:在点击a元素的时候改动该元素的背景色、字体颜色、字体大小。

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>代码示例1</title></head><body><a href="#" id="click">点击</a><script>var click=document.getElementById('click');click.onclick=function(){     click.style.background="red";    click.style.color="green";    click.style.fontSize="36px";}</script></body></html>

在该例中,我们用js对a元素的样式进行三次更改,会进行三次重绘。三次重绘会延长网页的加载时间。

优化方法:
把js的三次操作合并成一次操作。用js添加一个class给a元素,在该class中包含所有样式,这样就会把三次重绘变成一次重绘。

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>代码示例2</title>    <style>        .clickStyle        {            background: red;            color: green;            font-size: 36px;        }    </style></head><body><a href="#" id="click">点击</a><script>var click=document.getElementById('click');click.onclick=function(){     click.className="clickStyle";}</script></body></html>

总结
网站性能优化的方式有很多种。虽然网页的重绘在轻量级的网站中影响并不是很大,但是在重量级的网站中,性能优化以及网页加载时间就显得尤为重要。网站性能不好,体验不佳,页面加载时间过长,带来的直接损失就是用户流失。所以减少浏览器对页面的重绘也是性能优化的重要方法之一。

图片来源网络

本文笔记记录于《高性能HTML5》

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孕妇6个月喉咙痒怎么办 怀孕了咳嗽的厉害怎么办 买衣服眼光太差怎么办 我买衣服没主见怎么办 海澜之家皮带长怎么办 针织衫袖口松了怎么办 宝宝裤子腰大了怎么办 两岁了头发稀少怎么办 孩子抵抗力差爱生病怎么办 三岁宝宝总生病怎么办 冬天穿伴娘服冷怎么办 白衬衣粘了黑毛怎么办 黄衣服钻进黑毛怎么办 单位没给上社保怎么办 轮毂中心孔大了怎么办 钻戒大了怎么办小窍门 shift加f4没反应怎么办 多洗联系不上怎么办 弹力靴筒往下掉怎么办 子宫内膜厚月经停不了怎么办 雪纺衣服有静电怎么办 阿胶糕熬的稀了怎么办 感冒吃了阿胶糕怎么办 身上起湿疹很痒怎么办 身上起小疹子痒怎么办 吊带裙带子断了怎么办 裙子洗完缩水了怎么办 衬衫洗后缩水了怎么办 羊毛被洗缩水了怎么办 蕾丝洗后缩水了怎么办 天丝针织衫缩水怎么办? 氨纶面料起球怎么办? 新买的衬衫很硬怎么办 孕晚期睡不好觉怎么办 全棉衣服缩水了怎么办 棉麻的衣服起球怎么办 布艺沙发起球怎么办 加绒的衣服掉毛怎么办 新裤子有刺鼻味怎么办 新买鞋子味道大怎么办 天窗下水管堵了怎么办