我有两个关于Angular的问题。我试着阅读了一些文章,但我不明白。1.什么是增量DOM?1.增量DOM和虚拟DOM的区别是什么?
des4xlb01#
增量DOM是一个用于构建DOM树并在数据更改时就地更新它们的库。它与已建立的虚拟DOM方法的不同之处在于,不创建中间树(现有树就地突变)。这种方法显著减少了DOM树增量更新的内存分配和GC颠簸,因此在某些情况下显著提高了性能。https://github.com/google/incremental-dom
虚拟DOM将新的整个虚拟DOM与之前的虚拟DOM进行比较(diff),然后将这些更改应用于实际DOM。- 此方法创建新的虚拟DOM以确定更改(内存繁重)。增量DOM有一个虚拟DOM,并沿着树查找更改,然后对虚拟DOM进行变异,然后将这些更改应用于实际DOM -(减少内存大小和垃圾收集)。
虚拟DOM -占用大量内存,因为它需要为虚拟DOM“可能”发生的更改预留空间。增量DOM -不需要这么大的内存占用,因为内存只为更改而分配。测试表明,即使没有虚拟DOM,增量DOM也足够快。
1条答案
按热度按时间des4xlb01#
增量DOM是一个用于构建DOM树并在数据更改时就地更新它们的库。它与已建立的虚拟DOM方法的不同之处在于,不创建中间树(现有树就地突变)。这种方法显著减少了DOM树增量更新的内存分配和GC颠簸,因此在某些情况下显著提高了性能。
https://github.com/google/incremental-dom
虚拟DOM将新的整个虚拟DOM与之前的虚拟DOM进行比较(diff),然后将这些更改应用于实际DOM。- 此方法创建新的虚拟DOM以确定更改(内存繁重)。
增量DOM有一个虚拟DOM,并沿着树查找更改,然后对虚拟DOM进行变异,然后将这些更改应用于实际DOM -(减少内存大小和垃圾收集)。
虚拟DOM -占用大量内存,因为它需要为虚拟DOM“可能”发生的更改预留空间。
增量DOM -不需要这么大的内存占用,因为内存只为更改而分配。
测试表明,即使没有虚拟DOM,增量DOM也足够快。