zoukankan      html  css  js  c++  java
  • 虚拟dom

    Virtual DOM是对DOM的抽象,本质上是JavaScript对象,这个对象就是更加轻量级的对DOM的描述.

    真实DOM和其解析流程:

    创建DOM树——创建StyleRules——创建Render树——布局Layout——绘制Painting
    第一步: 利用HTML分析器,分析HTML元素,构建一颗DOM树
    第二步: 利用CSS分析器,分析CSS文件和元素上的inline样式,生成页面的样式表
    第三步:将DOM树和样式表关联起来,构建一颗Render树(这一过程又称为Attachment).每个DOM节点都有attach方法,接受样式信息
    返回一个render对象(又称renderer).这些render对象最终会被构建成一颗Render树
    第四步:浏览器将每个Render树上的节点确定一个在显示屏出现的精确坐标
    第五步:Render树和节点坐标都有了,调用每个节点的paint方法,将他们绘制出来

    DOM树不是等到整个HTML文档解析完之后才开始构建的,构建DOM树是一个渐进的过程,渲染引擎会尽快的将内容显示到屏幕上
    CSS的解析是从DOM树的下-上开始解析的 ,嵌套标签越多,解析越慢。
    Render树是DOM树和CSSOM树并行构建的,这三个过程是并行的

    Dom操作会导致浏览器重新绘制Dom树,然后渲染到浏览器上,这样每次重新绘制白白浪费计算机性能;
    虚拟Dom就是为了解决浏览器性能问题而被设计出来的,将页面的更新全部反映到JS对象上,操作内存中的JS对象的速度显然要更快
    ,等更新完成后,再将最终的JS对象映射成真实的DOM,交由浏览器去绘制。

    ----简单来说:记录虚拟树新树和旧树的差异,将差异更新到真实树上

    Diff算法:完成这种差异

  • 相关阅读:
    artdialog4.1.7 中父页面给子页面传值
    Sql Server按树形结构排序查询表记录
    js控制滚动条平滑滚动到制定位置
    sql实现对多个条件分组排序方法和区别
    css渐变颜色在线制作
    c#中文转全拼或首拼
    Aspose Cells 添加数据验证(动态下拉列表验证)
    jQuery 插件autocomplete
    导出excel时,以form方式提交json数据
    asp.Net2.0中TextBox设置只读后后台获取不到值的解决方法
  • 原文地址:https://www.cnblogs.com/zdy4396/p/14026316.html
Copyright © 2011-2022 走看看