微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AmCharts4 比 3 慢得多

如何解决AmCharts4 比 3 慢得多

很长一段时间以来,我一直在使用 Amcharts3。出于多种原因,我目前正在重写我的应用程序并“升级”各种东西,因此升级 AmCharts 也是有意义的。

除了它太慢....

这个小提琴:

https://jsfiddle.net/jhartnoll/e1g25y8v/

这里我有一组图表,显示了 5 个地点在 12 个月内的发货收据,因此有 60 个数据点。

如果您单击每个按钮,它将分别使用相同的数据和几乎相同的 Amcharts 3 和 4 配置呈现图表。

首先,Amcharts 4 做任何事情的速度要慢得多,点击按钮几秒钟后,任何东西都没有显示出来。

其次,当它显示时,我的时间记录工作方式表明 Amcharts4 上的“就绪”事件在加载所有图表之前不会触发。这一定与它菊花链图表的方式有关。

当然对事件的绑定略有不同:

   events: {
     "ready": function(ev) {
       var total = performance.Now() - start;
       $("#shippingReceipts").append($("<div/>").text("took: " + total + "ms"))
       console.log("chart_" + name + " ready",);
     }
   }


   "listeners": [{
     "event": "rendered","method": handleRender
   }]

这是一个管理仪表板,它将显示这个以及大约 4 个其他图表,它不仅会在启动时导致加载空白框,而且在编写这些图表时似乎还会占用浏览器一秒钟左右.

我一直对 AmCharts 印象深刻,所以不敢相信我在这里看到的是正确的 - 我一定是做错了什么,但到目前为止我已经浪费了两天时间,无论我做什么,它总是拼命慢!

有什么想法吗?

编辑/更新:

我弄乱了此处建议的 createDeferred 函数https://www.amcharts.com/docs/v4/concepts/performance/#Deferred_daisy_chained_instantiation

这里有新的 jsfiddle

https://jsfiddle.net/jhartnoll/4587a0q3/

虽然这提供了稍微好一点的用户体验,但我仍然对每个图表的渲染速度感到失望。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。