页面优化介绍

目录

 一、浏览器的组成:js引擎+渲染引擎

 二、渲染引擎的工作步骤

三、页面优化的相关的概念:

            如果想实现页面的优化,尽量的减少重流和重绘发生的次数。

        4:发生重流的情形:

        5:发生重绘的情形:

       6:进行页面性能的优化,从减少发生重流和重绘的次数着手。

四、防抖节流

五、防抖和节流的区别:


 一、浏览器的组成:js引擎+渲染引擎


 二、渲染引擎的工作步骤


            1:解析代码:代码到DOM树 + CSSOM。
            2:对象合成:DOM+CSSOM--渲染树。render tree
            3:布局:渲染树计算布局。(布局流)
            4:绘制:渲染树显示到屏幕上。

 

三、页面优化的相关的概念:


        1:重流:也称为回流、重排
            页面中的节点结构发生了变化,页面需要重新布局。这个过程称为重流。
        2:重绘
            页面中的节点的样式(外观)发生了变化,页面需要重新绘制(重新渲染),这个过程称为重绘。
            发生重流的时候一定会发生重绘。发生重绘的时候不一定会发生重流。

        3:上述的两个概念是页面优化的两个主要部分。


            如果想实现页面的优化,尽量的减少重流和重绘发生的次数。


            重绘:dom节点的css样式颜色的变化过程叫做重绘 改变的是cssTree 一部分变化,对randerTree影响相对较小。所以相对与重排而言对浏览器性能影响较小
            重排:js动态的修改dom 即更改了DOM树了 更改dom树之后 renderTree就变了,renderTree变了也就是要重新建立一个renderTree了 ,这个过程叫做重排。

        4:发生重流的情形:


(1)页面首次渲染;

(2)浏览器窗口大小发生改变;

(3)元素尺寸或位置发生改变;

(4)元素内容变化(文字数量或图片大小等等);

(5)元素字体大小变化;

(6)添加或者删除可见的DOM元素;

(7)触发display


        5:发生重绘的情形:


            重绘触发条件:当页面中元素样式的改变并不影响它在文档流中的位置时(例如:color、background-color、visibility等),浏览器会将新样式赋予给元素并重新绘制它。

       6:进行页面性能的优化,从减少发生重流和重绘的次数着手。


            浏览器自身有些优化的方案,如果多次对同一个元素进行样式的修改,那么会对这些修改进行优化,尽量一次重排实现。
            (1)读写分开进行
                每次读取元素的样式,那么该元素的所有的样式都是重绘之后的结果。
            (2)使用cssText
                div.style.cssText
                批量对样式进行修改。
            (3)使用 documentFragment
                使用文档片段来实现对多个元素的同时操作。
            (4)absolute 和 fixed 定位
            (5)必要时才显示隐藏元素

四、防抖节流

防抖: 动作绑定事件,动作发生后一定时间后触发事件,在这段时间内,如果该动作又发生,则重新等待一定时间再触发事件。

具体方法是:在上一次事件触发之后的时间内如果事件没有再次触发,那么就在时间后触发,否则将触发的时间作为新的起始点

你可以理解多次动作触发事件,只执行最后一次

节流:动作绑定事件,动作发生后一段时间后触发事件,在这段时间内,如果动作又发生,则无视该动作

你可以理解为多次动作触发事件,在一段时间内只执行一次

五、防抖和节流的区别:

防抖将此次事件的发生事件定在最后一次事件触发的时间,

节流将时间定在第一次事件触发的时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值