深入解析DOM树的加载

article/2025/10/31 16:45:34

DOM树

        在介绍 DOM 树之前,首先要清楚,DOM 规范中,对于文档的表示方法并没有任何限制,因此,DOM 树只是多种文档结构中的一种较为普遍的实现方式。

DOM 结构构成的基本要素是 “节点“,而文档的结构就是由层次化的节点组成。在 DOM 模型中,节点的概念很宽泛,整个文档 (Document) 就是一个节点,称为文档节点。除此之外还有元素(Element)节点、属性节点、Entity节点、注释(Comment)节点等。

了解了 DOM 的结构是由各种的子节点组成的,那么以 HTMLDocument 为根节点,其余节点为子节点,组织成一个树的数据结构的表示就是 DOM树。

DOM树的加载

  1. 在服务器中输入url,交给DNS域名解析,找到IP,向服务器发起请求(里面还有缓存,http协议,TCP…)
  2. 向服务器返回数据,浏览器接收文件(html,css,img…),生成的是二进制文件

html: 二进制转化为html, 例如Index.html

构建DOM树:HTML解析器

        过程: Token->Node->DOM

         Token语法解析,根是“document”节点(对象)

         Node: 生成节点,例如HTMLDivElement接口--对应div元素

         DOM:构建DOM树,接口和标签是一一对应的

 

        解析过程:

  1. 遇到link的外部css,遇到css的代码会进行css的加载,并行操作
  2. 遇见script标签时,会先执行js代码,直至脚本完成,然后继续构建DOM树

        这就是在底部加入JavaScript代码的原因。或者可以在头部引用,但前提是要加上async、defer,或window.onload;

        解析器遇到async属性的script时,开始下载脚本并继续解析文档。脚本会在下载完成后尽快执行(页面未必解析完毕),但解析器不会停下来等他下载(异步操作);与defer不同:先下载完等整个页面都解析完毕后再执行

        如果有多个script标签设置了async属性,则浏览器会异步下载该文件并且不会影响到后续DOM的渲染,如果有多个script标签设置了defer,则会按照顺序执行所有script脚本;

        如果您的脚本不会改变文档的内容,可将 defer 属性加入到 <script> 标签中,以便加快处理文档的速度。因为浏览器知道它将能够安全地读取文档的剩余部分而不用执行脚本,它将推迟对脚本的解释,直到文档已经显示给用户为止。

Defer脚本会在文档渲染完毕后。DOMContentLoaded事件调用前执行;脚本会被延迟到整个页面都解析完毕后再运行

         构建css树:从css解析器

每个css文件解析为样式表对象CSSStyleSheet,每个对象都包含CSSRule;CSSRule包含选择器和声明对象,以及其他与css对应的语法

Token解析:css 的词法及语法文法

Node->CSSOM

         构建render树 :渲染树=DOM树+CSS树

 

        布局layout与绘制paint:计算对象之间的大小,确定每个节点在屏幕的确切坐标;使用UI后端层绘制每个节点

        reflow(回流):当元素属性发生改变且影响布局时(宽度、高度、内外边距等),产生回流,相当于刷新页面

        repaint (重绘):当元素改变且不影响布局时(背景颜色、透明度…)发生重绘,相当于不刷新页面,动态更新内容

重绘不一定引起回流,回流必将引起重绘


http://chatgpt.dhexx.cn/article/9dH6S305.shtml

相关文章

DOM树节点解析

目录(?)[] 转自&#xff1a;http://blog.csdn.net/skyer518/article/details/37904787 DOM是解析XML文件的官方标准&#xff0c;它与平台和语言无关。DOM解析将整个XML文件载入并组装成一棵DOM节点树&#xff0c;然后通过遍历、查找节点以读取XML文件中定义的数据。由于DOM解析…

JavaScript之DOM树

一、什么是DOM树&#xff1f; DOM &#xff08;Document Object Model&#xff09;是指文档对象模型&#xff0c;通过它&#xff0c;可以访问HTML文档的所有元素。 DOM树是结构&#xff0c;所谓层级结构是指元素和元素之间的关系&#xff1a;父子&#xff0c;兄弟。 文档&am…

JavaScript的DOM 树是如何构建的 ?

今天通过对 DOM 模型、HTML 解释器和 JavaScript 的执行的介绍&#xff0c;来初步学习 HTML 解释器是如何将从网络或者本地文件获取的字节流转成 DOM 树的。 DOM 模型 1、DOM 标准 DOM (Document Object Model) 的全称是文档对象模型&#xff0c;它可以以一种独立于平台和语言…

DOM系列:DOM树和遍历DOM

上一节&#xff0c;咱们整理了DOM系列中的第一篇&#xff0c;主要介绍浏览器与DOM相关的知识。从标题中我们可以看出来&#xff0c;今天所要学的东西包含两个部分&#xff0c;第一部分是DOM树&#xff0c;第二部分是遍历DOM。如果你和我一样对于DOM树和遍历DOM是初次接触&#…

DOM树的理解【面试常问】

前言 vue和react框架被广泛应用&#xff0c;封装了DOM操作但是DOM操作一直都是前端工程师的基础、必备知识只会vue而不懂DOM操作的程序员&#xff0c;不会长久 DOM 全称为文档对象模型&#xff08;Document Object Model&#xff09;。有这几个概念&#xff1a; 文档、元素…

DOM树知识点梳理

为什么会提到Dom树呢,或许它对于我们很好地理解网页各个元素,标签和控件搭配,以及各种js,css等的加载会有一些帮助。笔者在工程中遇到了一些小问题,本质就是dom树的东西掌握的不扎实。所以借此来梳理一下。 1.HTML DOM ok, 我们先来看一下W3school中怎么解释这个概念和结…

浏览器-DOM树

前言&#xff1a; 在渲染流水线中直接或者间接地依赖于 DOM 结构&#xff0c;本文按着网络数据流路径来介绍 DOM 树是如何进行构建的。 节点&#xff08;Node&#xff09;&#xff1a; 节点&#xff08;Node&#xff09;原本是网络术语&#xff0c;表示网络中的连接点。一个网…

Dom树,什么是dom树?

相信很多初学前端的小伙伴&#xff0c;学了html, css, js之后&#xff0c;会遇到 一个名词 DOM树。 首先说一下DOM是什么&#xff1f; DOM 是 Document Object Model&#xff08;文档对象模型&#xff09;的缩写。 举个例子 我们日常生活中&#xff0c;经常会遇到一些写文档…

对 Dom 树的理解

什么是 DOM 从网络传给渲染引擎的 HTML 文件字节流是无法直接被渲染引擎理解的&#xff0c;所以要将其转化为渲染引擎能够理解的内部结构&#xff0c;这个结构就是 DOM。 DOM 提供了对 HTML 文档结构化的表述。 在渲染引擎中&#xff0c;DOM 有三个层面的作用&#xff1a; …

DOM初探(9)——DOM结构树

document一回车&#xff0c;他就代表整个文档&#xff1b;Document一回车&#xff0c;他代表的是一个函数&#xff0c;什么函数需要首字母大写&#xff1f;构造函数吧&#xff0c;只不过这个Document有点特殊&#xff0c;你不能new他&#xff0c;这时系统留给自己new的。那这个…

dom树是如何生成的

页面得渲染流程总得俩说就五步&#xff0c;创建 DOM 树——创建 StyleRules——创建 Render 树——布局Layout&#xff08;重排&#xff09;——绘制 Painting&#xff08;重绘&#xff09; 第一步&#xff0c;用 HTML 分析器&#xff0c;分析 HTML 元素&#xff0c;构建一颗 D…

Dom树 CSS树 渲染树(render树) 规则、原理

前端不可不学的浏览器渲染机制&#xff0c;阿里年年问&#xff0c;去一个栽一个。听说百度也在考这个&#xff0c;你还不准备学吗&#xff1f; 首先你要了解浏览器渲染的顺序&#xff1a;   1.构建dom 树   2.构建css 树   3.构建渲染树   4.节点布局   5.页面渲染 什么…

HTML-DOM树篇

一、什么是DOM DOM&#xff08;Document Object Model&#xff09; 文档对象模型&#xff0c;是HTML和XML文档的编程接口 DOM 以树结构表达 HTML 文档&#xff0c;树的每个分支的终点都是一个节点&#xff0c;每个节点都包含着对象DOM 将web页面与脚本或编程语言链接起来&#…

DOM结构(DOM树)

DOM 文档类型DOM&#xff08;Document Object Model&#xff09;主要用于HTML文档和XML文档的内容进行操作。DOM描绘了一个层次化的节点树&#xff0c;通过节点的操作&#xff0c;来实现对文档内容进行增删改查。 1.DOM&#xff08;Document Object Model&#xff09;&#x…

DOM(一)概述、dom树、查找元素

目录 一、DOM 概述 二、DOM树 二、查找元素 1. 无需查找的元素 2. 按节点间关系查找 3. 按 HTML 特征查找 三、案例&#xff1a;通过DOM实现购物车效果 一、DOM 概述 DOM全称 Document Object Model&#xff0c;是专门操作网页内容的一套对象和函数的总称。由于 ES 标准…

DOM深入学习 --- DOM 树介绍,如何遍历 DOM 树节点(一)

DOM 树 HTML 文档的主干是标签&#xff08;tag&#xff09;。 根据文档对象模型&#xff08;DOM&#xff09;&#xff0c;每个 HTML 标签都是一个对象。嵌套的标签是闭合标签的“子标签&#xff08;children&#xff09;”。标签内的文本也是一个对象。 所有这些对象都可以通…

什么是DOM?你了解DOM树吗?

在找工作的过程中&#xff0c;看到了招聘信息上有写这么一条信息&#xff1a; 掌握WEB前端开发技术&#xff1a;JavaScript(含ES6)、HTML、CSS、DOM等 看见这条信息我心里安心了不少&#xff0c;都是一些基础问题&#xff0c;但是乍一看DOM&#xff0c;脑子有点短路了&#x…

Windows命令:CHCP

CHCP 用途一&#xff1a;Windows操作系统默认编码格式是GBK&#xff08;963&#xff09;&#xff0c;cmd窗口编码方式设置为UTF-8方法&#xff1a; 临时修改方案&#xff1a;CHCP 65001永久修改方案&#xff1a;参考资料&#xff1a;https://jingyan.baidu.com/article/d71306…

查看windows操作系统的默认编码(字符集)-chcp

在windows cmd 模式下&#xff0c;输入命令 &#xff1a; chcp 如上图&#xff0c;我的活动代码页为936&#xff0c;意思是"中国-简体中文(GB2312)" 说明&#xff1a;代码页是“字符集编码”的别名&#xff0c;也有人称为“内码表”。 下表列出了所有支持的代码页…

解决‘chcp’不是内部或外部命令,也不是可运行的程序或批处理文件

解决方法&#xff1a; 此电脑\系统属性\高级系统设置\环境变量 在系统变量点击path&#xff0c;变量值改为Anacondad的安装路径加 &#xff1b;C:\Windows\System32 即可解决注意添加; 有什么问题可私信我 附图&#xff1a;