D3在Chrome上平移和缩放性能

时间:2015-01-30 11:34:53

标签: javascript performance google-chrome d3.js

为了方便起见,这里是我所拥有的JSFiddle

TRY

在FireFox(版本35.0.1)中平移地图。单击并按住地图上的任意位置,然后快速左右移动它。平移运动应该快速平稳。

现在在Chrome中尝试相同的操作,你会发现它不是那么顺利!它有点生涩/迟钝。我发现IE和Opera的最新版本也很滞后。

顺便说一句,如果你注释掉这个样式块,那么行为会突然平滑并且不再是迟钝的!你当然不会得到一张漂亮的地图。

#map path {
    fill: #C9DCC9;
    stroke: #066860;
}

那是什么?

首先,如果有人可以在他们的PC上确认这种行为,我将不胜感激。我在Windows 8.1上有所有最新更新。

然后,为什么在用D3完成的其他地图上发生这种行为?例如This one表现得很顺利!是否与多边形的复杂性有关?

1 个答案:

答案 0 :(得分:0)

为了解决这个问题,我简化了地图的路径。我在TopoJson上使用了-simplification函数。

在简化路径之后,Chrome,Firefox,Opera和IE 11中的地图平移和缩放非常流畅。

TopoJson是一个节点包,因此您需要为TopoJson安装节点和许多其他依赖项,以使其在Windows上运行。如果您很幸运,它将在Windows上为您工作。

我运气不好所以我去创建了一个运行Ubuntu的虚拟机,在那里,节点设置太容易了,我设法在5分钟内做了我想做的事情。与试图在Windows上运行的日子相比。

无论如何,希望这会有所帮助。 :)