DOM引擎

作者: 孟大仙 | 来源:发表于2022-08-27 09:45 被阅读0次

其一,为了让 Web 编程模型保持简单,浏览器的 JavaScript 引擎与 DOM 引擎共享一个主线程。任何 DOM API 调用都要先将 JS 数据结构转为 DOM 数据结构,再挂起 JS 引擎并启动 DOM 引擎,执行过后再把可能的返回值反转数据结构,重启 JS 引擎继续执行。这种上下文切换很耗性能,类似的还有单机进程间调用、远程过程调用等。
其二,很多 DOM API 的读写都涉及页面布局的“重新计算”,以确保返回值的准确,涉及样式、结构的还会触发页面“重新绘制”,更耗性能。综上,单次 DOM API 调用性能就不够好,频繁调用就会迅速积累上述损耗,导致 DOM 引擎占用主线程过久,用户操作不能及时触发 JS 事件回调,让用户感觉卡顿。所以,解决此问题的方案本质不在于用不用 jQuery、用不用虚拟 DOM,而是 —— 减少不必要的 DOM API 调用。虚拟 DOM 只是一种可选的方案,不是每种 Web 前端框架都用它。而减少不必要调用的各种方案,都遵循“在 JS 中缓存必要数据,计算界面更新时的阶段数据差异,只提交最终差集”的基本思路。虚拟 DOM 计算的是最终 DOM 结构的差异,还有的引擎计算的是 DOM 所绑定数据的差异,各有千秋。虚拟 DOM 的设计也不是性能首位的,React 意在保持较好性能的同时,拿它作为一个抽象层,方便向没有 DOM 接口的原生应用平台移植。

相关文章

  • DOM引擎

    其一,为了让 Web 编程模型保持简单,浏览器的 JavaScript 引擎与 DOM 引擎共享一个主线程。任何 ...

  • DOM的优化

    DOM的优化 由于解释JavaScript的引擎和解释DOM的引擎是相互独立的,从而导致DOM操作天生就很慢(为什...

  • 虚拟DOM的好处

    需要注意的是虚拟DOM不一定比真实的DOM操作快,JavaScript引擎和DOM引擎使用的是同一个主线程,任何涉...

  • 8.DOM和浏览器模式——JavaScript模式学习笔记

    一、DOM1.DOM访问DOM是独立于JavaScript引擎而实现的,对DOM的访问,是制约JS性能的主要瓶颈。...

  • 浏览器中的页面

    DOM树:JavaScript是如何影响DOM树构建的? 什么是 DOM从网络传给渲染引擎的 HTML 文件字节流...

  • dom构建渲染过程

    构建、渲染 1、构建DOM树(parse):渲染引擎解析HTML文档,首先将标签转换成DOM树中的DOM node...

  • 面试题集—(DOM元素渲染原理)

    1. 在浏览器内核可以分为渲染引擎,js引擎 2. 在构建DOM的时候解析器遇到JS会暂停构建DOM,直到JS运行...

  • DOM

    HTML加载完毕,渲染引擎会在内存中把HTML文档,生成一个DOM树,getElementById是获取内中DOM...

  • 基础知识:浏览器的渲染

    渲染流程 渲染流程有四个主要步骤: 解析HTML生成DOM树: 渲染引擎首先解析HTML文档,生成DOM树 构建...

  • ajax-1-概述

    简介 组成:XMLHttpRequest,JavaScript,XML,CSS,DOM等。 浏览器与Ajax引擎进...

网友评论

      本文标题:DOM引擎

      本文链接:https://www.haomeiwen.com/subject/jgztjltx.html