浏览器的重绘和重排学习笔记

文档加载 页面显示过程: 解析构建Dom树 Dom树 +几何属性 构建渲染树(拥有Dom结构+属性的树) 根据渲染树放置节点 绘制页面。流式布局 渲染树计算只需遍历一次,table及其内部元素需要多次计算。

重绘:外观改变(颜色 边框等) 重排:几何属性(长宽高距离等)发生变化,渲染树重新计算 重绘不一定重排 重排一定重绘

触发重排的操作:
(1)Dom元素的几何属性变化
几何属性变化 该节点失效 重新构建渲染树失效节点 根据新的渲染树重新绘制该部分。当前元素的重排也可能影响到相关元素的重排。
(2)Dom树的结构发生变化
增加或者删除
(3)获取某些属性
offsetTop offsetLeft offsetWidth offsetHeight scrollTop scrollLeft clientTop clientLeft clientWidth clientHeight 调整浏览器大小等

优化方案:
(1)将多次改变样式属性的方法合并在一起
(2)需要多次重排的元素设为postion:absolute或者fixed 脱离文档流可不影响其他元素
(3)遍历插入Dom 用生成Dom结构字符串后再插入的办法 替代
(4)隐藏元素不在Dom树中,操作不会触发重排,对一个元素进行复杂操作 可将其隐藏 操作完后 再显示 只需两次重排
(5)经常获取能引起重排的属性 可将属性缓存

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章