【发布时间】:2016-09-06 16:59:12
【问题描述】:
引用这篇(https://news.ycombinator.com/item?id=9155564)文章
简短的回答是 DOM 并不慢。添加和删除 DOM node 是几个指针交换,只不过是设置一个属性 on JS 对象。
DOM 瓶颈仅仅是那些导致重绘的东西吗?如果是这样,那么来自 React 的虚拟 DOM 的渲染不应该与重绘整个组件(当然是在一个浏览器 API 调用中)具有相同的性能吗?我认为浏览器执行的算法只会尝试将差异从一种状态重绘到另一种状态(可能像 git?)。暗示浏览器自己维护一个虚拟 DOM。那么,拥有一个虚拟 DOM 有什么意义呢?
还应该添加一个将display 样式属性设置为none 的元素不会严重影响性能吗?我自己会对此进行分析,但由于我最近才开始进行 javascript 编程,所以我不知道该转向哪里。
【问题讨论】:
-
如果你只画一次,没有什么是慢的。
-
这就是我想问的问题,如果您使用虚拟 DOM($().prepend 或 $.append())而不是
n浏览器 API 渲染n次调用差异应该很大吗? -
它在需要时添加或附加,并且只需更改属性或仅更改其后代之一,这一切都基于数据的更改方式和差异算法
-
如果 chrome 这样做,那将是个大新闻。
-
@YOU 没关系!如果是给你的公司,我可能没有生意看它!我只是好奇而已。不过谢谢!
标签: javascript jquery html dom reactjs