Javascript 在D3中添加大量文本元素会导致性能问题

Javascript 在D3中添加大量文本元素会导致性能问题,javascript,d3.js,Javascript,D3.js,我正在开发一个使用大量文本的D3应用程序。因为有很多文本元素,所以使用D3缩放进行平移会导致一些延迟。有什么方法可以提高应用程序的性能吗?我很高兴听到你们的建议。我一直在考虑对我的数据进行分页并检测pan事件,但我的UI非常复杂,用户可以自由地按自己的方式放置东西,因此我不确定如何实施pan/分页解决方案。这样一个开放性问题肯定会得到基于意见的答案,如果没有更多的上下文,你也必然会得到一些无用的东西,但现在你要做的是:这取决于你想要什么,以及你所说的“大量”是什么意思 假设显著量超过1000个元

我正在开发一个使用大量文本的D3应用程序。因为有很多文本元素,所以使用D3缩放进行平移会导致一些延迟。有什么方法可以提高应用程序的性能吗?我很高兴听到你们的建议。我一直在考虑对我的数据进行分页并检测pan事件,但我的UI非常复杂,用户可以自由地按自己的方式放置东西,因此我不确定如何实施pan/分页解决方案。

这样一个开放性问题肯定会得到基于意见的答案,如果没有更多的上下文,你也必然会得到一些无用的东西,但现在你要做的是:这取决于你想要什么,以及你所说的“大量”是什么意思

  • 假设显著量超过1000个元素,考虑使用画布代替SVG。当然,如果您可以单击单个文本节点,这会更麻烦,但它应该非常擅长平移/缩放
  • 如果不可能,请查看您的代码。是否单独重新定位所有文本节点?如果是这样,将它们全部放在一个
    g
    节点中,并给该节点一个
    transform
    zoom
    。换句话说,使该节点负责所有全局移动,并将文本节点仅相对放置
  • <> LI>如果这也是不可能的,考虑删除文本节点,如果它们超出SVG的边界。重新定位不可见节点需要很大的计算能力,请对此保持明智。这可能是最复杂的解决方案,所以请最后再试一次