当我发现这一点时Node.js 使用 V8 JavaScript 引擎构建, 我想:
太好了,网页抓取会随着页面变得更容易
将像在浏览器中一样呈现,带有
支持 XPath 和任何 AJAX 调用的“本机”DOM
执行的页面。
- 为什么它使用与 Chrome 相同的 JavaScript 引擎时没有原生 DOM?
- 为什么它没有在检索到的页面中运行 JavaScript 的模式?
- 关于 JavaScript 引擎与 Web 浏览器中的引擎,我不明白什么?
非常感谢!
DOM 就是 DOM,JavaScript 实现只是一个单独的实体。 DOM 表示 Web 浏览器向 JavaScript 环境公开的一组工具。没有要求然而任何特定的 JavaScript 运行时都会有any通过全局对象公开的设施。
Node.js 是一个独立的 JavaScript 环境完全独立网络浏览器的。 Web 浏览器和 JavaScript 之间没有内在联系; DOM 是notJavaScript 语言或规范或任何内容的一部分。
我在基于 Java 的 Web 服务器中使用旧的基于 Rhino Java 的 JavaScript 实现。该环境也与任何 DOM 完全无关。这是我自己的应用程序,负责使用工具填充全局对象,以完成我需要它能够完成的任务,并且它不是 DOM。
请注意,有类似的项目jsdom如果你想在 Node 项目中使用虚拟 DOM。由于其作为服务器端平台的本质,DOM 是 Node 可以不需要的工具,但对于各种服务器应用程序仍然非常有意义。这并不是说 DOM 对某些人可能没有用,但它与流程控制、I/O、网络、数据库互操作等服务不属于同一类别。
对于“为什么?”这个问题可能会有一些“官方”答案。那里,但这基本上只是那些维护 Node(现在的 Node 基金会)的人的事。如果某个勇敢的开发人员决定 Node 默认应该附带一组模块来支持虚拟 DOM,并且成功地工作并实现了这一点,那么 Nodewill有一个 DOM。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)