java - 实现 DOM 意味着什么

标签 java javascript c++ dom

我遇到了“实现 DOM”这个短语,想问一下它到底是什么意思?

我认为大多数浏览器中 DOM 都是由 C++ 实现的。而DOM API是通过Javascript暴露给用户的?那么使用 PHP/Java 甚至像 jsdom 那样的 Javascript 来实现 DOM 意味着什么呢?

一个更具体的问题是为什么人们想要使用其他语言重新实现 DOM?

谢谢

最佳答案

I think DOM is implemented by C++ in most browser. and DOM API is exposed to users through Javascript?

也许吧。我确定 Internet Explorer 使用 MSXML用于操作 DOM。因为它是一组COM组件,它可用于多种不同的语言。此实现很可能是用 C++ 编写的,但从应用程序的 Angular 来看,这并不重要。

So what does it mean to implement the DOM using PHP/Java or even Javascript such as jsdom did.

DOM是处理 XML 文档的推荐应用程序编程接口(interface)。实现 DOM 基本上意味着实现符合此接口(interface)的 XML 解析器和树结构库。

这是 API 的一个约定。它让熟悉 DOM 操作的人在使用新库时有“宾至如归”的感觉。当您使用另一种语言(例如服务器端 Java、Python、Ruby 和客户端 JavaScript)时,通常会发生这种情况,但如果您开始使用同一语言的另一个项目,但该项目使用不同的库,则可能会发生这种情况。

A more specific question is why would people want to re-implement DOM using other languages?

因为并不是每个人都同意使用哪种编程语言。如果你真的喜欢Haskell并且您选择以 XML 格式操作文档(即持久数据,或与其他理解 XML 的软件进行通信,例如 Web scaping),那么您需要在 Haskell 中操作 XML 文档。然后,您需要一个 Haskell 中的 XML 库。

请注意,即使人们就单一编程语言达成一致,可能仍然会有许多不同的库,因为人们在政治方面存在分歧,例如软件许可问题和编程风格、所需的功能等。

关于java - 实现 DOM 意味着什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7140044/

相关文章:

javascript - 在鼠标滚动时平滑滚动到 div

javascript - 停止下划线变大

c++ - 标准库和标准模板库有什么区别?

java - 用于分析实例组合的设计模式?

java - 需要帮助配置 maven .pom 来构建 .exe 文件

javascript - HTML5 & Javascript, iPhone 文件上传, 防止手机休眠

python - 使用物理文本文件进行进程间通信

java - 如何恢复netbeans java中Jframe设计 View 中的面板?

java - CXF 和 Spring-WS 哪个框架更好?

c++ - 在 C++ 库和程序中具有相同接口(interface)的类。 exe版本是