Summary

  • W3C 于 1998 年 10 月 1 日发布 DOM Level 1 推荐标准,为 HTML 和 XML 文档提供跨平台、跨编程语言的访问与修改接口。
  • 标准描述文档对象的逻辑关系和操作,不规定程序内部必须如何存储。首层包括 Core 与 HTML 接口,事件功能留待后续层级。

网页展示给人看很容易;程序要抓住其中一个段落,就未必知道从哪里下手。浏览器可能有一套私房路线,编辑器又把同一段文字藏在另一处。W3C 的 DOM Level 1 推荐标准给文档做出公开把手:沿结构遍历、找到元素、修改内容、创建新部件。HTML 与 XML 都能通过共同对象接口与软件打交道,脚本作者不用每次都向家具厂讨一张暗门地图。

规范的介绍把文档说成近似树的逻辑结构。节点有身份、关系和行为。同一文档交给两个符合规范的实现,暴露出来的对象与关系模型应相同。程序内部却不必真的用一棵树储存。一个柜子背后是木板,另一个背后是铜管;向使用者伸出的抽屉把手,位置和动作得能对上。

这个方案最初要解决脚本和程序在不同浏览器之间的可移植性,后来 HTML/XML 编辑器与文档库也加入了讨论。DOM Core 给出基础对象接口,DOM HTML 建立在其上。W3C 用中立的 IDL 描述接口,同时给出 Java 和 ECMAScript 绑定。IDL 是写明约定的尺子,不是要求每家程序都买同一套内部机器。共同点放在各方真正接触的位置。

把手连着实际动作。程序能建立文档,在父节点与子节点之间走动,添加元素、改文字、删去内容。表格里的一个单元格不再只是屏幕上涂出的矩形,而是有位置、有关系、可操作的对象。浏览器、编辑器和其他工具可以用公开规则找到同一块文档材料。脚本与页面的关系由此从私人约定变成可讨论的接口。

W3C 1998 年 10 月 1 日的公告称 DOM Level 1 为动态操作文档与数据的标准 API。名字里的 Level 1 很诚实:第一层聚焦结构和内容;介绍文档把事件、访问控制、线程安全、验证等列为后续工作。抽屉已经有了把手,门铃与门卫还得另画图。不同问题各有自己的控制者。

这项规范的历史价值,是为“软件眼中的文档”划出稳定边界。HTML 和 XML 继续是文档语言,厂商继续选择内部结构;对外则提供共同的对象与操作。网页终于不用让每个来访工具重新发明开抽屉的手势。