java - 为什么通过Javascript访问DOM文档比Java更快?

标签 java javascript performance dom

最明显的速度差异是 Javascript 中 dom 元素的递归遍历,它总是比 Java 中实现的相同方法快很多。

为什么会出现这样的情况呢?为什么我能够比 Java 更快地遍历 dom 文档,特别是当它们共享相同的方法(递归)时。

最佳答案

这是因为浏览器没有java解释器。他们解释JavaScript。 DOM 是一个可以在任何地方使用的模型,但它主要在浏览器环境中使用,并且浏览器多年来已经针对 javascript 优化了 DOM 解析。

浏览器优化 DOM 解析的原因是 DOM 解析是动态 Web 开发的基石。考虑使页面更具动态性的正常方法:

1.) Listen for some events fired on the page.
2.) When those events are fired, modify some number of DOM objects, 
    e.g., by changing their visibility, geometry, or actually moving
    them to other portions of the DOM.

DOM 在这里很重要,因为它提供了在浏览器内存中存储文档的规范,这样就不必通过更改一小部分标记来重新呈现整个页面。这些存储在浏览器内存中的 DOM 对象的结构就像 native JavaScript 对象一样;因此,针对它们优化 JavaScript 会更容易。

自从动态网页变得至关重要以来,浏览器一直在竭尽全力地争取最快的自定义 JavaScript 解释器,并且在动态 Web 环境中,您将能够看到的主要地方优化的最大返回是 DOM 解析。

我看不出在java环境中使用DOM的迫切需要,但在浏览器环境中它绝对是必要的。这是您在 javascript 中看到比 java 更好的 DOM 解析优化的最可能原因。更多的人对其在浏览器中运行有着既得利益。但是,为了澄清,我不确定代码级别的确切技术原因为什么它实际上更快。

关于java - 为什么通过Javascript访问DOM文档比Java更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7787886/

相关文章:

javascript - 读取 NFC 标签的消息值 -Phonegap/Cordova 应用

multithreading - 使用 OpenMP 加速和调度

javascript - 在元素上使用重复的类名?

c# - 基于文档大小的 MongoDB 性能

java - Java Project Explorer 从 Eclipse IDE 中的何处加载文件

javascript - 通过 Javascript 更改 svg 多边形属性

java - 创建渐变填充单元格

php - 加载、滚动、放大和缩小图像,如谷歌地图

java - 跳过 build.xml 的 Eclipse 验证

javascript - 过滤器未显示在网格中