实现DOM意味着什么

时间:2011-08-21 18:00:56

标签: java javascript c++ dom

我遇到过这个短语“实施DOM”并想问这究竟是什么意思?

我认为DOM在大多数浏览器中都是由C ++实现的。和DOM API通过Javascript向用户公开?那么使用PHP / Java甚至jsdom等javascript实现DOM意味着什么呢?

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

由于

1 个答案:

答案 0 :(得分:4)

  

我认为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)进行通信),那么您将需要操作XML文档在哈斯克尔。然后,您需要在Haskell中使用XML库。

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