我遇到了“实现 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/