- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
什么是文档对象模型 (DOM)?
我问这个问题是因为我主要从事 .NET 工作,经验有限,但我经常听到更有经验的开发人员谈论/提及它。我在线阅读了教程,但无法理解全貌。我知道这是一个 API!
更具体的问题是:
最佳答案
一般来说,DOM 是结构化文档的模型。
它是当今 IT 的核心概念,没有开发人员可以选择退出 DOM。无论是在 .net、HTML、XML 还是其他使用它的领域。
它适用于所有文档(word 文档、HTML 页面、XML 文件等)。在开发人员领域,它主要适用于 HTML 和 XML 领域,含义略有不同。
在 HTML 领域,引入 DOM 是为了支持 90 年代后期称为“动态 HTML”的革命。在 IE4 和 Netscape 4.0 之前,HTML 文档在浏览器中是不可更改的(在这些遥远的时代,你用来制作网页的所有东西都是“动画 GIF”!!!! 而 HTML 是 3.2 版)。
因此,在浏览器内部动态操作服务器发送的文档是一场巨大的革命,并开启了向我们今天看到的有吸引力的网站迈进的步伐。
Javascript 由 Netscape 引入(受洗的 javascript 以顺应新的 Java 趋势,但不相关)并得到 Netscape HTTP 服务器和 Netscape 浏览器的支持,Internet Explorer 热切地跟随浏览器内部的移动。但是,当使用 javascript 来操作文档的内容时,您需要一种简单的方法来指定要与之交互的文档部分。这就是 DOM 的用武之地。虽然 HTML 4 不是“格式良好”的,但浏览器构建了页面的内部表示,在其顶部有“body”元素,下面有大量的 html 标签,在层次结构中(子节点,父节点)节点属性等)。 DOM 是支撑允许导航此层次结构的 API 的模型。
由于 Netscape 和 IE 浏览器都是相互竞争的解决方案,因此 NS 和 IE DOM 融合的可能性很小。 W3C 介入,允许较小的浏览器供应商参与竞争,并努力使 DOM 标准化。因此,W3C DOM。它所做的只是引入另一种方言,众所周知,它花了数年时间和两个强大的竞争对手才迫使 MS 遵守标准。
尽管更现代的导航技术(如 JQuery)对 DOM 有速记符号,但它们在内部依赖于 DOM。
HTML 对文档的“格式良好”表现出宽容的缺点显而易见,这引发了新的热潮:XML。在网络领域,XML 和 XSLT 最先得到 IE5 的支持,并在更多领域被采用,而不仅仅是显示页面。
要解析 XML,主要是在 Java Word 中,您需要开发一个 SAX 解析器,它基本上是 SAX 引擎的一个插件,您可以在其中描述引擎应该如何处理它将在解析文档。开发 SAX 解析器并不简单,但它是一种低占用空间的解决方案。
但是,您必须为每种新文档类型开发一个特定的文档类型...
因此,不久之后图书馆开始出现,可以解析任何文档并构建其层次结构的内存映射。因为它也有相同的根、父子和子概念(通过 HTML 从 SGML 继承),所以它也被称为 DOM,并且这个名称适用于任何库。
DOM 的概念并不局限于甚至是为 HTML 或 XML 而发明的。 DOM 是适用于任何文档的一般概念,尤其是那些(其中绝大多数)显示您需要在其中导航的层次结构的文档。您可以谈论 MS-Word 文档的 DOM,也有用于导航这些文档的 API。
关于html - 什么是DOM? (总结和重要性),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4976344/
在 GGally::ggpair 的最新版本中,相关值用 * 显示,如下图所示。我想删除 *s 并保留相关值。 我看过 ggpairs 代码,但它对我来说并不明显。 GGally::ggpairs(d
在 GGally::ggpair 的最新版本中,相关值用 * 显示,如下图所示。我想删除 *s 并保留相关值。 我看过 ggpairs 代码,但它对我来说并不明显。 GGally::ggpairs(d
我正在尝试使用在 weka 库中实现的 SVM 分类来对一些数据进行分类。我的分类代码如下所示: BufferedReader reader = new BufferedReader(new File
我已经为 jdbm 构建了 Lucene Directory 实现,一个嵌入式Java数据库。 Directory API 的一部分是与"file"修改日期相关的两个方法:touchFile 和 fi
我的任务是编写一个函数,将文件中单词的长度与整数进行比较,然后返回所有符合该大小的单词。我得到的答案几乎相同,除了我没有像他们那样包含 string.strip() : def get_words(d
xgb.importance 命令返回由 f score 衡量的特征重要性图。 这个f分数代表什么,它是如何计算的? 输出: Graph of feature importance 最佳答案 这是一个
有一个二元分类问题:如何获得 Ranger 模型变量的 Shap 贡献? 示例数据: library(ranger) library(tidyverse) # Binary Dataset df %
如今 servlet 在哪里使用? 我知道 servlet 是在面向请求/响应的服务器(例如支持 Java 的 Web 服务器)中运行的模块。但是现在我没有听到任何人使用 servlet。这可能是因为
我是一名优秀的程序员,十分优秀!