浏览器渲染步骤

JS动画在浏览器的实现步骤

js

1 .使用js实现一些视觉变化的效果。
2 .比如做一个动画或者往页面里面添加一些dom元素等。
3 .

Style:计算样式

1 .根据css选择器,对每个dom元素匹配对应的css样式
2 .确定每个DOM元素上该使用什么css样式规则

layout:布局

1 .具体计算每个远不的布局变化,确定do'm元素在屏幕上最终显示的大小和位置
2 .web页面中元素的布局是相对的,因此一个元素的布局变化会相应的联动其他元素的布局变化,body的宽度变化会影响器子元素的宽度,子元素宽度的变化也会继续对其他子孙元素产生影响。
3 .DOM树中每个node节点都有一个对应的layoutObject,这个里面知道如何在屏幕上print node的内容

paint:绘制,填充像素

1 .包括绘制文字,颜色,图像,边框,影音,也就是一个dom元素的所有可视效果,一般来说,这个绘制过程是在多个层上完成的
2 .拥有相同坐标控件的LayoutObjects,属于同一个渲染层paintLayer
3 .满足层叠上下文条件的layoutIbjects一定回味其创建新的渲染层,当然还有其他的一些特殊情况,为一些特殊的layoutObjects创建一个新的渲染层。

composite:渲染层合并

1 .对页面中dom元素的绘制是在多个层上进行。
2 .在每个层上完成绘制过程之后,浏览器会将所有层按照合理的顺序合并成一个图层,然后显示在屏幕上。
3 .

合成层

1 .某些特殊的渲染层别认为是合成层,合成层由单独的GraphicsLayer,而其他不是合成层的渲染层,则和第一个拥有GraphicsLayer父层公用一个。
2 .每个GraphicsLayer都有一个GraphicsContext,负责输出多个位图进行合成,然后draw到屏幕上。
3 .合成层的位图,会交由GPU合成,比cpu处理要快
4 .当需要repaint时只需要repaint本身,不会影响到其他层
5 .对于transform和opacity效果,不会触发layout和paint
6 .合成层的好处是不会影响到其他元素的绘制,因此为了减少动画元素对其他元素的影响,从而减少paint,我们要把动画效果中的元素提升为合成层
7 .

满足直接原因进行合并
1.硬件加速的iframe元素,比如嵌入到页面的iframe元素
2.video元素
3.覆盖在video元素上的视频控制栏
4.3D或者硬件加速的2Dcanvas元素
5.硬件加速的插件,比如flash
6.在dpi较高的屏幕上,fixed定位的元素会自动的被提升到合成层中,但是dpi较低的设备上不会
7.3d transform
8.animation
9.transition元素
10.will-change:设置为opacity,transform,top,left,bottom,right ---这个是提升为合成层的最佳方法
11.不支持的will-change的浏览器:transform:translateZ(0)

后代元素原因
1.有合成后代同时本身有transform,opacity,mask,filterreflection属性
2.合成层后代同时本身fixed定位
3.3dtransform的合成层后代本身有preserves-3d

重叠原因
1.重叠会产生合成层
2.由于重叠的原因,可能随便就会产生大量的合成层,因此就有了层压缩的处理,如果多个渲染层童一个合成层重叠时,这些渲染层会被压缩到一个GraphicsLayer中,防止由于重叠原因导致的层爆炸

层叠上下文

1 .层叠上下文是html元素的三维概念,这些html元素在一条假想的面对于面向电脑屏幕视窗或者网页的用户的z轴上延伸,html元素依据其自身属性按照优先级顺序占用层叠上文空间。
2 .层叠上下文由满足以下任意一个条件的元素形成

1 .根元素html
2 .z-index值不为“auto”的绝对/相对定位
3 .opacity属性值小于1的元素
4 .transform属性值不为“none”的元素
5 .filtre值不为“none”的元素
6 .

优化

1 .最理想的渲染流水线是没有布局和绘制环节,只需要做合成层的合并即可
2 .目前只有两个属性是满足这个条件:transform,opacity。
3 .更加详细的是查询https://csstriggers.com/
4 .元素提升为合成层后,transform,opacity才不会触发paint,如果不是合成层,则其依然会触发paint
5 .减少绘制区域:对于不需要重新绘制的区域应该尽量避免绘制,以减少绘制区域。

高级特性--管理合成层

1 .由于每个渲染层的纹理都需要上传到GPU处理,因为我们还需要考虑CPU和GPU之间的带宽问题,以及有多大内存供CPU处理这些纹理的问题
2 .防止层爆炸--这个还是有点不懂

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,744评论 1 92
  • 前端开发者丨http请求 https:www.rokub.com 前言见解有限, 如有描述不当之处, 请帮忙指出,...
    麋鹿_720a阅读 10,898评论 11 31
  • 首先,让我们来看一段代码: 我们现在要在浏览器中显示以上结构的HTML。1.客户端浏览器开始从用户向服务器发出请求...
    大大的萝卜阅读 199评论 0 0
  • 最近经常听到的一个词“格局”。朋友圈有人发;分享文章有人谈;就是在闲聊中也时常提起!为人格局要大一点...
    红梅赞_af47阅读 145评论 0 0
  • 为什么从搬家这件事情谈起,是我的一位好友最近得搬家,而他在这件事上遇到一些情感问题,当然这不是他第一次碰到。在...
    嗷大喵爱吃馒头阅读 94评论 0 0