所以我一直在使用 zingchart API 来构建我的应用程序,但我注意到的一件事是使用某些 zingchart.exec 操作时非常严重的延迟,例如“setdata”和“showplot”。这些似乎花费了不寻常的时间,我想知道是否有使用这些方法的替代方法,或者是否有一些方法可以加快它们的执行速度。作为上下文,我使用的旧图表 API 会在不明显的时间内更改和更新图表,而 zingchart 方法可能需要 1-2 秒以上的时间来执行和更新图表。提前致谢。-b
1 回答
再次来自 ZingChart 团队的 Mike。
如果您还没有检查过 ZingChart 的 API 方法,这里有一大堆:http ://www.zingchart.com/docs/api/api-methods/ 。现在来了解一下 ZingChart 如何在下面工作的技术......
这些 API 方法中的每一个都有不同级别的图表修改,有些比另一种更激进。
例如,让我们采用方法removenode
。该方法调用只是从指定的绘图和节点索引中删除一个节点。在底层,ZingChart 检查 API 调用的副作用并确定需要在图表上重绘的内容。有时 ZingChart 可以从图表中删除单个节点,有时它需要重新绘制刻度。无论哪种方式,它都是对一个区域的孤立更改,因此 ZingChart 可以优化它需要执行的计算量。
现在让我们采用更激进的 API 方法,例如setdata
. 这种方法非常强大,可以让用户更改图表本身的任何部分。权衡是性能下降。ZingChart 不知道要隔离更改的区域,因此它必须重新绘制整个图表。
使 ZingChart 高效的最佳方法是选择最接近您需要做的 API 方法。- 是的,有时您将不得不使用“蛮力” setdata
。但是,如果您发现您需要一些不存在的 API 方法或需要对它们进行性能优化,我们非常乐意与您合作解决问题并实施解决方案以提高库中的可用性。support@zingchart.com 将是最好的联系方式。
另一方面,我猜您正在使用您在上一个 S/O 问题中提供的示例中的 Angular 指令动态添加比例标记??
我创建的角度指令有 3 种修改图表的方法:
- zc 值
- zc-json
- zc渲染
每种方式都有自己的性能和功能权衡。zc-values
利用 ZingChart 的setseriesvalues
,而zc-json
使用setdata
. 该指令实际上是这些方法调用的包装器,并没有充分利用 ZingChart 可用的每个 API 方法调用。因此,它本质上比 vanilla ZingChart 库的性能要差。详细说明指令的资源:http ://www.zingchart.com/blog/2015/03/05/zingchart-angularjs/
如果您需要对指令进行更多扩展以接受不同的 API 方法,我非常乐意接受拉取请求。