难以理解API和DOM

时间:2017-01-03 18:22:59

标签: javascript api dom browser interface

因此,我正在阅读API以了解有关它们的更多信息,并且通常的定义似乎与“#34; API是您访问其他人的界面”相似。代码或其他人的代码访问您的代码,"并经常得到清除这一点的示例,例如Yelp使用Google或Apple Maps API访问地图,而无需了解有关方法本身实现的任何信息。

但后来我开始分别阅读DOM(文档对象模型),它也定义为API。但是,基于之前的定义和API(Yelp之一)的例子,我发现很难想象..以同样的方式将其视为API。我了解网络浏览器实现DOM,但每个网络浏览器都有自己的实现,而不是当你谈论谷歌地图API时,我认为谷歌地图有自己的单一实施,然后被其他应用程序使用。因此......对于特定的网络浏览器,网络浏览器的行为类似于" Google"在提供API方面,但谁充当... Yelp?是网页吗?程序员?语言(Javascript)?

我希望我的例子不会太混乱,我只是想了解DOM有谁拥有" Google Map API-Yelp"与。的关系类型。

2 个答案:

答案 0 :(得分:1)

我想说,任何创建JavaScript或HTML文件的人都是' Yelp'和谷歌'部分将是浏览器。这里的区别是W3C,它标准化了DOM API。如果不是W3C,那么每个浏览器供应商都可以公开它自己的DOM集 - 这个场景在过去一定程度上存在。感谢W3C,我们现在可以处理在不同浏览器中非常一致的API。

就好像Google和Bing决定将他们的地图API标准化一样。最终结果是Yelp可以创建一个既可以使用Google也可以使用Bing地图的客户端。它仍然是一个API,即使是由不同的来源实现的。

我希望有所帮助。

答案 1 :(得分:1)

API是应用程序用于与某些其他服务和/或数据结构交互的函数和数据结构的规范。

一个例子是POSIX操作系统API(用于访问文件的open()read()等功能,用于管理进程和程序的fork()exec()等)。 POSIX指定了API,它允许程序员编写可通过使用这些函数在多种不同操作系统上运行的可移植程序。

另一个例子是Web浏览器中的DOM API。 DOM是一个抽象的数据结构,DOM API是像getElementById()appendChild()这样的方法,它们作用于数据结构,然后浏览器显示。每个浏览器都有自己的API实现,允许Javascript应用程序在不同的浏览器上运行。

API本身并不特定于实现。但是,如果服务提供商拥有使用其服务的库,则API及其实现通常会混淆。例如,要使用Stripe服务处理信用卡付款,您可以使用他们编写的Stripe API。从理论上讲,Stripe,PayPal,SWReg等所有支付处理器可以聚在一起定义一个通用的API,他们都会实现这些API,但他们还没有这样做AFAIK。