面试8:渲染机制

课程思维导图

渲染机制.png

Q:DTD是什么?

文档类型定义,浏览器会使用它来判断文档类型,从而决定使用何种协议来解析

Q:DOCTYPE是什么?

文档类型声明,通知浏览器当前文档用的是哪个DTD

Q:常用的DOCTYPE的类型有哪些?

  1. HTML5:<!DOCTYPE html>
  2. HTML4.01 Strict :严格模式,包括所有的HTML元素和属性,但不包括展示性和弃用的元素,如font
  3. HTML4.01 Transitional:传统模式,包含所有HTML元素和属性,包括展示性的和已弃用的

Q:浏览器渲染过程是怎样的?

  1. HTML被解析成DOM Tree,CSS被解析成CSS Rule Tree
  2. 在布局阶段,把DOM Tree和CSS Rule Tree经过整合生成Render Tree
  3. 元素按照算出来的规则,把元素放到它该出现的位置,通过显卡画到屏幕上

Q:重排(Reflow)是什么?

  1. 定义:DOM中各个元素都有自己的盒子模型,需要浏览器根据样式进行计算,并根据计算结果将元素放到特定位置,这就是Reflow
  2. 触发Reflow的条件
    • 增、删、改、移DOM
    • 修改CSS样式
    • Resize窗口
    • 页面滚动
    • 修改网页的默认字体

Q:重绘(Repaint)是什么?

  1. 定义:当各种盒子的位置、大小以及其他属性改变时,浏览器需要把这些元素都按照各自的特性绘制一遍,这个过程称为Repaint。
  2. 触发Repaint的条件:
    • DOM改动
    • CSS改动

Q:如何减少重绘、避免重排?

本质上,就是合并修改。具体的措施有:

  1. DOM层面:DocumentFragment本质上是一个占位符,真正插入页面的是它的所有子孙节点,所以,将需要变动的DOM节点先汇总到DocumentFragment,然后一次性插入,可以减少DOM操作的次数。
  2. CSS层面:操作多个样式时,可以先汇总到一个类中,然后一次性修改
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容