我正在使用 dhtmlx 中的 甘特图,但在加载大型数据集时遇到问题。
数据渲染后,效果就很好。根本不存在性能问题。
我已经做了一些分析,并将瓶颈缩小到代码中的
gantt.parse()
行。返回需要超过20秒。
我有一个中等复杂的数据集,几乎有 1400 条记录长。
我已经完成了在文档中找不到的所有优化技巧,尽管它们似乎只涉及性能调整而不是数据加载。
您能帮助减少加载我的数据集所需的时间吗?
我已经解决了这个问题。项目的长度大大减慢了加载时间。有几个长达 100 年的项目。将项目长度限制在合理的时间范围内可以减轻这种负担。
http://docs.dhtmlx.com/gantt/desktop__performance.html
以下是提高甘特图性能的方法,它们非常简单,并且提供了文档。
此外,不断更新 dhtmlxgantt.js 的版本,因为它们也提高了每个版本的性能。
2023 年更新(DHTMLx 甘特图 v8):
如果您使用以下命令代替
gantt.parse(data)
,则可以提高性能:
gantt.silent(()=>{gantt.parse(data);});
gantt.render();
在我的例子中,数据数组包含 50k 项,这将 30 分钟的解析调用 (!) 变成了 10 秒 (!!!),另外 2 秒用于
render
调用。