Javascript D3:我可以在绘制和重画一系列矩形时获得更好的性能吗?

Javascript D3:我可以在绘制和重画一系列矩形时获得更好的性能吗?,javascript,performance,svg,d3.js,Javascript,Performance,Svg,D3.js,通过将矩形绑定到我的数据(时间和值),我用d3创建了一个线性热图: 每个热图可以包含数百(在某些情况下是数千)个元素。浏览器最初绘制它们时没有任何问题,但当我使用d3轴(缩放行为和编程重画)沿着时间轴移动时,我在转换过程中看到了巨大的性能问题(一个众所周知的SVG缺陷) 我有什么办法可以解决这个问题吗?使用具有相同数量的元素的会改善情况吗?我需要使用画布而不是SVG吗 谢谢 linearGradient可能不会有帮助,因为您仍然需要为每个停止点使用DOM元素。Canvas听起来是个不错的选择。

通过将矩形绑定到我的数据(时间和值),我用d3创建了一个线性热图:

每个热图可以包含数百(在某些情况下是数千)个
元素。浏览器最初绘制它们时没有任何问题,但当我使用d3轴(缩放行为和编程重画)沿着时间轴移动时,我在转换过程中看到了巨大的性能问题(一个众所周知的SVG缺陷)

我有什么办法可以解决这个问题吗?使用具有相同数量的
元素的
会改善情况吗?我需要使用画布而不是SVG吗


谢谢

linearGradient可能不会有帮助,因为您仍然需要为每个停止点使用DOM元素。Canvas听起来是个不错的选择。

你是怎么解决这个问题的?你用帆布吗?