前端路线(架构、性能)

作者 新城 日期 2017-09-13
前端路线(架构、性能)

博客

浏览器渲染DOM树的过程

1.解析HTML文件,创建DOM树
自上而下,遇到任何样式(link、style)与脚本(script)都会阻塞(外部样式不阻塞后续外部脚本的加载)

2.解析css
优先级:浏览器默认设置<用户设置<外部样式<内联样式<HTML中的style样式;
特定级:id数100+类或伪类数10+tag名称*1

3.将CSS与DOM合并,构建渲染树(renderingtree)
DOM树与HTML一一对应,渲染树会忽略诸如head、display:none的元素

4.布局和绘制,重绘(repaint)和重排(reflow)
重排:若渲染树的一部分更新,且尺寸变化,就会发生重排;
重绘:部分节点需要更新,但不改变其他集合形状。如改变某个元素的颜色,就会发生重绘。
发生时机:
1.增加或者删除DOM节点
2.display:none(重排并重绘);visibility:hidden(重排);
3.移动页面元素
4.增加或者修改样式
5.浏览器窗口发生变化,页面发生滚动
减少重绘和重排(回流)以提升页面性能
1.不要逐个修改样式 通过class去修改
2.clone节点,在副本中修改,然后直接替换当前的节点
3.若要频繁获取计算后的样式,请暂存起来
4.降低受影响的节点:在页面顶部插入节点将影响后续所有节点。而绝对定位的元素改变会影响较少的元素;
5.批量添加DOM:多个DOM插入或修改,应组成一个长的字符串后一次性放入DOM。使用innerHTML永远比DOM操作快。

页面加载机制
硬件加速是什么


css3硬件加速这个名字感觉上很高大上,其实它做的事情可以简单概括为:通过GPU进行渲染,解放cpu。

translate3D能开启硬件加速的原因
css 架构sass less stylu
SEO
浏览器兼容 (cocos2d-js,box2D以及国外的一些知名引擎游戏)
ECMAScript规范、DOM规范、BOM规范

BOM规范定义了js如何与浏览器进行交互,包含window对象、location对象、navigator对象、history对象等。

作为一个前端老手,你也应该对业界有名的一些开源工具类框架有所接触,比如百度的ueditor、webuploader、echarts,图表类中的highcharts,以及像jplayer这样的播放器工具。