博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重绘和回流
阅读量:6441 次
发布时间:2019-06-23

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

1,浏览器的渲染机制

    1、处理HTML形成一个dom树

    2,处理css形成一个css渲染树

    3,html和css形成一个dom渲染树

    4,根据渲染树进行布局,计算每个节点的属性 

    5,调用GPU绘制,合成一个图层,显示在屏幕上。

  2,重绘和回流的定义

      重绘的是外观改变、布局不变,例如color的属性等

      回流是布局有所改变或者几何属性需要改变称作回流

      重绘不会引起回流,回流会引起重绘

      有几下种情形引起性能的问题

         1,当window改变的时候 

         2,当字体变化的时候

         3,改变和删除样式

         4,文字改变

         5,定位和浮动改变

         6,盒模型 

     1,重绘和回流跟evenloop有一定的关系

       当事件轮询的微任务执行完成之后,会判断document是否需要更新,浏览器的刷新频率的60hz,代表16ms才更新一次

       1,然后判断是否有resize 和sroll的操作,它是16ms才执行一次, 自带节流额功能

       2,然后判断是否有media  事件

       3, 更新动画,发送事件

       4, 判断是否有全屏的事件

       5, 执行requestaninateFrame,最新的浏览器支持动画

       6, 执行 inserSectionObserrve,这个属性的可用于懒加载,在可见的屏幕里进行执行,兼容性不好,safar不支持

       7,更新界面

     

 3,防止重绘和回流

   1,对与animate  动画属性top,left 可以使用transform的transllate ,可以提供gpu加速,防止回流

   2,用visibility代替display:none:防止回流

   3,使用requestAnimateFrame防止频率的回流

   4,尽量不要使用table,改变一个属性,可以引起回流

   5, 不要把节点的属性的在for循环里当成变量

   6,频繁运行的动画变成图层,例如video

   

 

 

转载于:https://www.cnblogs.com/yayaxuping/p/9700486.html

你可能感兴趣的文章
Android之剪贴薄实现
查看>>
Sonix SN9P701 OCR点读笔二维码识别源码
查看>>
oracle 单引号 双引号 连接符
查看>>
如何使用fileupload工具来实现文件上传
查看>>
EZ GUI Button和Checkbox创建
查看>>
指针[收藏]
查看>>
审批流程设计方案-介绍(一)
查看>>
Python多进程编程
查看>>
使Eclipse下支持编写HTML/JS/CSS/JSP页面的自动提示。
查看>>
IIS_右键点击浏览网站没有反应
查看>>
POJ训练计划1035_Spell checker(串处理/暴力)
查看>>
Makefile 使用总结【转】
查看>>
一起学微软Power BI系列-官方文档-入门指南(4)Power BI的可视化
查看>>
Android.util.Log 关于Android开发中打印log
查看>>
转:Python yield 使用浅析 from IBM Developer
查看>>
仪表板颜色
查看>>
NodeJS、NPM安装配置步骤(windows版本)
查看>>
mysql oom之后的page 447 log sequence number 292344272 is in the future
查看>>
chrome禁用某个网站js脚本的执行
查看>>
数组排序 和 二分法查找
查看>>