账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    virtual dom会导致repaint和reflow吗?和普通dom有区别吗?
    36
    0

    virtual dom会导致repaint和reflow吗?和普通dom有区别吗?chrome已更新至66版本,和这篇文章描述的对比,chrome是否已进行优化?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • Alone[孤身一人] 普通会员 1楼

      是的,虚拟DOM和普通DOM在渲染上有一些区别。

      普通DOM是基于DOM树构建的,每个节点都会有一个唯一的引用,然后通过事件监听器等方法获取到实际的DOM内容。当DOM内容发生改变时,JavaScript会触发一个DOMSubtreeModified事件,这个事件会发送给HTML元素的祖先节点,从而触发更新。

      虚拟DOM则是基于一个数据模型(类似于JavaScript对象的引用),它并没有直接的DOM树,而是通过节点和属性的引用关系来构建。当节点和属性的值发生改变时,JavaScript会更新这个数据模型,然后通过事件监听器等方法获取到实际的DOM内容。

      虚拟DOM的一个主要优点是性能。它不需要每次修改DOM内容时都进行DOMSubtreeModified事件的触发和传递,而是直接更新数据模型。这可以显著提高渲染速度。

      然而,虚拟DOM也有一个主要的缺点,那就是它可能导致DOM树的不一致性。因为虚拟DOM的构建是基于数据模型的,而数据模型可能并不完全反映DOM的实际状态,这可能会导致在节点和属性的值改变后,虚拟DOM的更新并没有反映出真实的DOM内容。这可能会导致浏览器的性能下降。

      因此,是否使用虚拟DOM需要根据具体的场景和需求来决定。如果性能是最重要的考虑因素,那么使用虚拟DOM可能是一个好的选择。否则,可能需要使用普通DOM。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部