gpt4 book ai didi

javascript - 为什么 Node.js 没有原生 DOM?

转载 作者:IT老高 更新时间:2023-10-28 21:55:40 26 4
gpt4 key购买 nike

当我发现 Node.js 是使用 V8 JavaScript 引擎构建的时,我想:

Great, web scraping will be easier as the page will be rendered like in the browser, with a "native" DOM supporting XPath and any AJAX calls on the page executed.

  1. 当它使用与 Chrome 相同的 JavaScript 引擎时,为什么没有原生 DOM?
  2. 为什么它没有在检索到的页面中运行 JavaScript 的模式?
  3. 关于 JavaScript 引擎与 Web 浏览器中的引擎,我有哪些不了解的地方?

非常感谢!

最佳答案

DOM 就是 DOM,JavaScript 实现只是一个单独的实体。 DOM 表示 Web 浏览器向 JavaScript 环境公开的一组工具。没有要求,但是任何特定的 JavaScript 运行时都将具有通过全局对象公开的任何设施。

Node.js 是一个独立的 JavaScript 环境,完全独立于网络浏览器。 Web 浏览器和 JavaScript 之间没有内在联系; DOM 不是 JavaScript 语言或规范或任何东西的一部分。

我在基于 Java 的 Web 服务器中使用旧的 Rhino 基于 Java 的 JavaScript 实现。该环境也与任何 DOM 无关。这是我自己的应用程序,它负责使用工具填充全局对象以执行我需要它能够执行的操作,它不是 DOM。

请注意,有些项目像 jsdom如果您想在 Node 项目中使用虚拟 DOM。由于其作为服务器端平台的本质,DOM 是 Node 可以不用的工具,并且对于各种服务器应用程序仍然非常有意义。这并不是说 DOM 可能对某些人没有用处,只是它与进程控制、I/O、网络、数据库互操作等属于不同的服务类别。

对于“为什么”这个问题,可能会有一些“官方”回答。在那里,但它基本上只是维护 Node 的人(现在的 Node 基金会)的业务。如果某个勇敢的开发人员决定 Node 应该默认附带一组模块来支持虚拟 DOM,并且成功地工作和工作并实现了这一点,那么 Node 将拥有一个 DOM。 p>

关于javascript - 为什么 Node.js 没有原生 DOM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6657216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com