再次来自 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 问题 Dynamically adding scale markers? 中提供的示例中的 Angular 指令?
我创建的角度指令有3种修改图表的方法:
- zc 值
- zc-json
- zc 渲染
每种方式都有自己的性能和功能权衡。 zc-values 使用 ZingChart 的 setseriesvalues,而 zc-json 使用 setdata。该指令实际上是这些方法调用的包装器,并没有充分利用 ZingChart 可用的每个 API 方法调用。因此,它本质上比 vanilla ZingChart 库的性能要差。详细说明指令的资源:@987654323@
如果您需要对指令进行更多扩展以接受不同的 API 方法,我非常乐意接受拉取请求。