使用 zingchart.exec 方法时出现严重延迟

Serious delay when using zingchart.exec methods

所以我一直在使用 zingchart API 构建我的应用程序,但我注意到的一件事是在使用某些 zingchart.exec 操作时出现非常严重的延迟,例如 'setdata' 和 'showplot'。这些似乎花费了不寻常的时间,我想知道是否有使用这些方法的替代方法,或者是否有某种方法可以加快它们的执行速度。结合上下文,我使用的旧图表 API 会在不明显的时间内更改和更新图表,而 zingchart 方法每次执行和更新图表可能需要 1-2 秒以上。提前致谢。 -b

这里又是 ZingChart 团队的 Mike。

如果您还没有检查过 ZingChart 的 API 方法,这里有一大堆方法:http://www.zingchart.com/docs/api/api-methods/。 现在来了解一下 ZingChart 在底层是如何工作的......

这些 API 方法中的每一个都有不同级别的图表修改,一些比另一个更激进。

例如,让我们采用方法removenode。该方法调用只是从指定的绘图和节点索引中删除一个节点。在幕后,ZingChart 检查 API 调用的副作用并确定需要在图表上重新绘制的内容。有时 ZingChart 可以从图表中删除单个节点,有时它需要重新绘制比例。无论哪种方式,它都是对一个区域的孤立更改,因此 ZingChart 可以优化它需要执行的计算量。

现在让我们采用更激进的API方法,例如setdata。此方法非常强大,允许用户更改图表本身的任何部分。权衡是性能下降。 ZingChart 不知道要隔离哪个区域发生变化,因此它必须重新绘制整个图表。

提高 ZingChart 性能的最佳方法是选择 API 最接近您需要执行的方法。 -- 是的,有时您将不得不使用 "brute-force" setdata。但是,如果您发现您需要一些 API 不存在的方法或者它们需要针对性能进行优化,我们非常乐意与您一起解决问题并实施解决方案以提高可用性图书馆。 support@zingchart.com 是最好的联系方式。


另一方面,我猜您正在使用您在上一个 S/O 问题 中提供的示例中的 Angular 指令?

我创建的 angular 指令有 3 种修改图表的方法:

  1. zc-值
  2. zc-json
  3. zc-render

每种方式都有自己的性能和功能权衡。 zc-values 使用 ZingChart 的 setseriesvalues,而 zc-json 使用 setdata。该指令实际上是这些方法调用的包装器,并没有充分利用 ZingChart 可用的每个 API 方法调用。因此,它的性能本质上不如香草 ZingChart 库。详细说明指令的资源:http://www.zingchart.com/blog/2015/03/05/zingchart-angularjs/

如果您需要对指令进行更多扩展以接受不同的 API 方法,我非常乐意接受拉取请求。