我有一个基于D3 v3的图表,使用内置的缩放行为来处理拖盘功能。 zoom
处理程序正在使用更新更顺利比只是调用更新每个平移操作。使用鼠标右键而不是左键更好地使D3 v3缩放/拖动性能更好?
当我开始在图表中使用大量数据时,我注意到使用鼠标右键而不是左侧拖动时更新的性能明显更好。在深入挖掘Chrome DevTools之后,我发现两种操作之间存在着非常奇怪的差异。
这是右侧拖动以平移图表时的大块时间轴视图。
这是我所期望的时间表的样子,帧更新是相对正常和正在以最快的速度被称为是可以的。更新为〜25ms,重新绘制〜60ms。 〜每帧85毫秒。
这是具有完全相同数据的时间线,当左侧 拖动时,图表中的数据完全相同。
正如你可以看到每个帧正在显著更多的时间(〜175ms之间),与一次更新的结束和下一个开始之间巨大差距的时间。在时间轴中没有可见的处理,只有少数事件处理程序(不是我加的,似乎是D3)的事件处理程序,最多只需0.23ms。
我已删除了所有其他的事件处理程序,我可以找到在图表上,没有效果
我已经看到了Chrome,但是一些处理的一些优化拖动操作过程之前,并且已经看到的速度放缓在此期间的HTTP流量,但纯客户端更新没有。
这是一个已知的问题? D3会为左拖动做些特别的事情吗?有没有人见过这个?
刚刚尝试添加'.on('mousemove')'防止默认处理程序到处理缩放行为的相同元素,这完全解决了这个问题。奇怪的是,我从来没有在其他地方看到过这种行为。谢谢您的帮助! – XenoByteZero