javascript - 浏览器源代码中是否嵌入了Web API(如EventTarget、DOM)的实现?
问题描述
浏览器源代码中是否嵌入了Web API(如EventTarget、DOM)的实现?
如果是这样,它看起来像什么?它是否与 JavaScript 引擎分离?
如果没有 Web API 的帮助,我们可以编写异步回调函数吗?
任何简短的解释表示赞赏。我只是想对它有个概念。
解决方案
浏览器源代码中是否嵌入了Web API(如EventTarget、DOM)的实现?
还有哪里?
如果是这样,它看起来像什么?
在 Chromium和Firefox中的 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引入了异步性。
推荐阅读
- javascript - EXCEL VBA HTML 单击按钮,然后单击下拉选项
- freepascal - TFPCustomHashTable 构造函数使用 196613 常量。为什么要使用这个特定的值?
- asp.net-mvc - MVC 5 ActionResult 参数始终为空
- angular - 如何在 ngxs 中订阅元选择器(组合状态选择器)?
- c - 为什么我的右移运算符在逻辑上而不是在 c 中以算术方式运行?
- amazon-web-services - Amazon 为 EKS VPC 设置建议的 Cloudformation 模板直接与其建议相矛盾。是否存在其他模板?
- debugging - 如何在 GDB 中设置断点,但不让断点暂停执行?如果线路被击中,我只想在控制台中收到通知
- excel - VBA中的自动过滤器
- bash - Bash 脚本 - AWS SSM 并行导出变量
- wagtail - 当我复制一个页面时,它的 ParentalManyToManyFields 不会被复制。难道我做错了什么?