【发布时间】:2013-12-18 12:02:55
【问题描述】:
我经常听到“DOM 级别 1”、“DOM 级别 2”、“DOM 级别 3”和“DOM 级别 4”,并意识到我不知道它们之间的区别或它们之间的关系其他。
我知道最基本的 - DOM 是文档对象模型,它为脚本语言(特别是,但据我所知,不限于各种版本的 ECMAScript,例如ECMAScript 5.1)提供访问元素的 HTML 文档。 (我阅读的一些网站 - 例如dom introduction on quirksmode - 说它适用于任何 XML 文档,但 HTML 是一个足够的子集。)
w3c's DOM technical reports 上的日期似乎暗示每个后续的 DOM 级别都会取代之前的级别。
遗憾的是,我发现提供澄清的最佳参考是 wikipedia,这似乎是相同的 - 标准化部分说后续级别“添加”了额外功能,而没有提到删除任何内容。
现在,我的问题可能很快,但希望能表达我无知的一般状态:
- 一个 DOM 级别与另一个 DOM 级别的关系是什么?
- 较低级别的 DOM 是较高级别 DOM 的完整子集吗?随着 DOM 级别的提高,是否删除了任何功能?当我看到像
The level 1 DOM will work fine on an HTML document和In the Level 1 DOM, each object, whatever it may be exactly, is a Node之类的陈述(都来自 quirksmode 介绍)时,这是否意味着此类陈述适用于 2、3 和 4 级? (这些都是同一个问题,只是问的方式不同) - 引用 DOM 级别真的只是一种简写方式,说明用户代理必须具备何种现代性才能使特定功能正常工作?
显然,我可以从 w3c 的 DOM 技术报告中研究每个规范,但希望从有第一手经验的人那里得到答案。只看changes section of the spec for DOM level 3,我发现从 2 到 3 的大部分更改都是添加,尽管 Node 接口中的一些关键实现已经更改。这些变化是否破坏了任何东西?
下次有人告诉我“哦,那是 DOM 级别 2,所以没关系”时,我想做的不仅仅是明智地点头来自我的研究。
【问题讨论】:
-
不相关:XHTML 是 XML 的子集,而 HTML 不是,尽管它们非常相似。 +1 有趣的问题,期待答案。
-
似乎维基百科页面说明了一切。如果每个级别都添加了额外的功能,那么它不会隐式删除任何内容。如果新功能涉及删除以前的功能,那么它仍然需要“添加”该功能(删除或弃用)。
标签: javascript html xml dom xhtml