Cod*_*ier 2 javascript c++ java dom
我看到“实现 DOM”这句话,想问一下这到底是什么意思?
我认为大多数浏览器中 DOM 都是由 C++ 实现的。而DOM API是通过Javascript暴露给用户的?那么使用 PHP/Java 甚至像 jsdom 那样的 Javascript 来实现 DOM 意味着什么呢?
一个更具体的问题是为什么人们想要使用其他语言重新实现 DOM?
谢谢
我认为大多数浏览器中 DOM 都是由 C++ 实现的。而DOM API是通过Javascript暴露给用户的?
或许。我确信 Internet Explorer 使用MSXML来操作 DOM。由于它是一组COM组件,因此可用于多种不同的语言。该实现很可能是用 C++ 编写的,但从应用程序的角度来看,这并不重要。
那么使用 PHP/Java 甚至像 jsdom 那样的 Javascript 来实现 DOM 意味着什么呢?
DOM是处理 XML 文档的推荐应用程序编程接口。实现 DOM 基本上意味着实现符合此接口的 XML 解析器和树结构库。
这是API的一个约定。它让熟悉 DOM 操作的人在使用新库时有“宾至如归”的感觉。当您使用另一种语言(例如服务器端 Java、Python、Ruby 和客户端 JavaScript)时,通常会发生这种情况,但如果您开始使用同一语言的另一个项目,但该项目使用不同的库,则可能会发生这种情况。
一个更具体的问题是为什么人们想要使用其他语言重新实现 DOM?
因为并不是每个人都同意使用哪种编程语言。如果您确实喜欢Haskell并且选择以 XML 格式操作文档(即持久数据,或与其他理解 XML 的软件进行通信,例如 Web scaping),那么您将需要在 Haskell 中操作 XML 文档。然后,您需要一个 Haskell 中的 XML 库。
请注意,即使人们同意单一编程语言,也可能仍然存在许多不同的库,因为人们在政治方面存在分歧,例如软件许可问题和编程风格、所需的功能等。