首页 > 解决方案 > 浏览器源代码中是否嵌入了Web API(如EventTarget、DOM)的实现?

问题描述

浏览器源代码中是否嵌入了Web API(如EventTarget、DOM)的实现?

如果是这样,它看起来像什么?它是否与 JavaScript 引擎分离?

如果没有 Web API 的帮助,我们可以编写异步回调函数吗?

任何简短的解释表示赞赏。我只是想对它有个概念。

标签: javascriptapibrowser

解决方案


浏览器源代码中是否嵌入了Web API(如EventTarget、DOM)的实现?

还有哪里?

如果是这样,它看起来像什么?

在 ChromiumFirefox中的 EventTarget,DOM 实现有点难以展示,因为它由许多这样的脚本组成,但是使用我链接到的网站,您可以轻松地导航它。

它是否与 JavaScript 引擎分离?

是的。基于 Chromium 的浏览器中的 JS 引擎是v8,Firefox 中的引擎是SpiderMonkey,Webkit 中的是JavaScriptCore。虽然所有这些 JS 引擎都是为浏览器开发的,但它们也可以在其他环境中很好地工作,例如没有实现 DOM 的 node.js 使用 v8 作为其 JS 引擎,或者 MongoDB 在其版本中从 v8 切换到 SpiderMonkey 3.2.

请记住,除了执行我们的小 JS 脚本之外,浏览器还有许多其他事情要做,而 JS 引擎只是这些大软件的一小部分。

如果没有 Web API 的帮助,我们可以编写异步回调函数吗?

当然,如果你有其他东西可以提供与事件循环相同的行为,你就不需要 * Web API,再一次,node.js 有一个事件循环,即使它不遵循 Web 标准并且不实现 Web API(有一些例外)。

然而,JS 本身只是通过Promises引入了异步性。


推荐阅读