D3.js 使用联接是否也有性能改进

D3.js 使用联接是否也有性能改进,d3.js,D3.js,我在想散点图。。。上面有许多圆圈的图表。让我们在上面绕5000圈。 然后我看到一些代码说,Ok,这是你用D3画“一”圈的方法,现在我想要5000个,每个都是一个DOM,对吗? 那么浏览器会崩溃吗?或者它能处理这个问题吗?然后我写了这篇博文 这就解释了乔尼斯。。。。 那么,这是否意味着如果我使用连接,那么我就不需要创建5000个单独的圆,性能将大大提高?或者它只是一个很好的语法,但性能仍然相同?连接只是意味着如果加载一些新数据,那么您将能够轻松地分离:新的圆(selection.enter())、

我在想散点图。。。上面有许多圆圈的图表。让我们在上面绕5000圈。 然后我看到一些代码说,Ok,这是你用D3画“一”圈的方法,现在我想要5000个,每个都是一个DOM,对吗? 那么浏览器会崩溃吗?或者它能处理这个问题吗?然后我写了这篇博文 这就解释了乔尼斯。。。。
那么,这是否意味着如果我使用连接,那么我就不需要创建5000个单独的圆,性能将大大提高?或者它只是一个很好的语法,但性能仍然相同?

连接只是意味着如果加载一些新数据,那么您将能够轻松地分离:新的圆(
selection.enter()
)、删除的圆(
selection.exit()
)和所有圆(
selection

在下图中,元素对应于已加载的数据,数据对应于将用于创建新圆的新数据

因此,您仍将加载5000个单独的圆。但是,如果只更新一个圆,则不会使用
selection.enter()
重新绘制5000个圆。因此,通过明智地使用此工具,您可以提高动态可视化的性能