美文网首页
初识 DOM 及些许感性理解

初识 DOM 及些许感性理解

作者: 饥人谷_Bayes | 来源:发表于2017-04-17 22:19 被阅读0次

学完 JavaScript,还在疑惑其作用的时候,DOM 蹦了出来。有些不知所云,几番查阅只有,意识到自己有着不少误解,将新的理解总结出来,以供之后再来审视。

DOM vs HTML

DOM 是什么,在哪能看到 DOM 吗?使用浏览器阅读网页的时候,按 <kbd>f12</kbd> 打开开发者工具,你会看到这样的画面

标注的部分,就是常常听说的 DOM 了。

看上去,这个我们写的 HTML 似乎一样呀。

如果再研究研究,就能发现,两者还是有些区别的。下面是对 DOM 进行了操作的结果。

DOM vs JS

  • 1993 年,HTML 发布
  • 1996 年,JavaScript 发布
  • 1996 年,CSS 发布
  • 1998 年,XML 发布

时间先暂停在 1998 年以前,现在人们有了 HTML 表达文档的内容,CSS 描述文档的样式,也有了 JavaScript,但当时并没有 DOM 标准。这意味着,例如 .addEventListener 之类的方法无法使用。也就是说,怎么「操作」文档,这不是 JavaScript[1] 的范畴!

换言之,之前认为 .addEventListener 是 JavaScript 的东西,实则 DOM 定义的 API。

回到 1998 年前,当时怎么使用 JS 操作文档,是没有统一的规范的——一切取决于浏览器,各家厂商都有自己的定义方式——非标准性质的 DOM 出现。然后 IE4 和 Netscape Navigator 4 又各自退出了自己的 DOM 扩展,增强 JavaScript 的功能,也称为 Dynamic HTML(简称 DHTML)。这段时期的 "DOM",习惯上也成为 DOM Level 0, 是历史中的一个参考点,而非正式的标准规范。

发展

DOM Level 1

  • 1998 年,DOM Level 1 发布

W3C 正式发布了 DOM,名为 DOM Level 1,主要为了映射文档结构,由两块组成:

  • Core:映射以 XML 为基础的文档结构
  • HTML:基于 Core 进行了扩展,添加针对 HTML 的对象和方法

DOM Level 2

  • 2000~2003 年,DOM Level 2 发布

2 级 DOM 对之前的 Core 进行了拓展,支持了 XML 的命名空间,而且引入了更多的模块:

  • Views:描述跟踪一个文档的各种视图(使用 CSS 样式设计文档前后)的接口
  • Event:描述事件接口
  • Style:描述处理基于 CSS 样式的接口
  • Traversal and Range:描述遍历和操作文档树的接口

DOM Level 3

  • 2003~2004 年,DOM Level 3 发布

此时,新引入了两者模块:

  • Load and Save:统一方式加载和保存文档的方法
  • Validation:描述了验证文档的方法

对 Core 再次进行了拓展,支持 XML 1.0 规范,涉及 XML Infoset、XPath 和 XML Base。

回顾

截止 2017-04-17,DOM Level 4 还在草稿阶段。现在再来看看 MDN 上关于 DOM 的描述:

文档对象模型 (DOM) 是 HTML 和 XML 文档的编程接口。它提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构,样式和内容。DOM 将文档解析为一个由节点和对象(包含属性和方法的对象)组成的结构集合。简言之,它会将 web 页面和脚本或程序语言连接起来。

所以

  • 只有 JavaScript 才能操作 DOM 吗?W3C 的标准里没有规定,任何语言都可以。
  • 有 JavaScript 就一定有 DOM 吗?并不是,可以在浏览器和 Node.js 中分别执行 console.log(document) 试试。

参考

同时推荐点击链接,可以更深入了解 DOM


  1. 全文提及的 JavaScript 都指的是语言本身,而非局限于网页或其他宿主环境

相关文章

  • 初识 DOM 及些许感性理解

    学完 JavaScript,还在疑惑其作用的时候,DOM 蹦了出来。有些不知所云,几番查阅只有,意识到自己有着不少...

  • JavaScript之jQuery

    九、jQuery 目录:初识jQuery及公式、jQuery选择器、jQuery事件、jQuery操作DOM元素 ...

  • 小试牛刀——DOM&BOM&EVENT

    初级-DOM详解系列 1-初识DOM DOM: Document Object Model (文档对象模型)简单来...

  • 初识DOM

    什么是DOM? DOM(文档对象模型),是针对HTML和XML文档的一个API,通过DOM可以去改变文档。通俗地说...

  • 初识DOM

    1. DOM概念 DOM(Document Object Model)文档对象模型。DOM是关于创建,插入,修改,...

  • 初识DOM

    什么是DOM?这应该是大多数初学者都会问的问题。 在W3C中是这样说的: DOM 是 W3C(万维网...

  • 初识DOM

    文档对象模型 DOM(Document Object Model)定义访问和处理HTML文档的标准方法。DOM将H...

  • 初识DOM(三)

    在我们掌握了获取特定元素的方法之后,我们还可以继续想办法获取它的各个属性(getAttribute方法)和更改节点...

  • 初识DOM(二)

    之前学习了什么是DOM, 知道了DOM就是节点,那么面临的第二个问题就是,我们应该怎样去使用这些节点呢。 想要使用...

  • 1.15 初识DOM

    DOM DOM:document object model 文档对象模型(提供一系列的属性和方法,能让我们操作页面...

网友评论

      本文标题:初识 DOM 及些许感性理解

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