我使用D3.js做了一个小图表。
对于不同类型的输入数据类型,有3种不同的加载函数。
我的图表可以在任何这些数据集上呈现,一次一个,基于传递给渲染函数的参数。
数据加载代码是异步的,这会产生问题,因为我的渲染函数甚至在数据完全加载之前就开始绘制了。
我已经给出了单独的加载函数,而不是在渲染函数中调用它们,因为用户可能只想最初加载数据集并稍后渲染图表。
我想在开始绘图之前等待一个标志,并在所有数据集上传后设置这个标志,但看起来很难看,因为我无限循环。
我可以用任何设计方面的想法来完成这项工作吗?
var visualization = new Chart()
.width(1000)
.height(1000)
.loadDissimilarityMatrix('dataSet1.csv')
.loadAdjacencyMatrix('dataSet2.csv')
.loadLaplacianMatrix('dataSet3.csv')
.render('Dissimilarity')
// .render('Adjacency') for using the adjacency dataset.
答案 0 :(得分:0)
我想出了一个解决方案。
我意识到数据加载部分应该留给API用户。我应该只询问直接数据,而不是要求URL加载文件。显示“忙碌屏幕”的责任'应该都是API用户所有。
当数据集完全加载时,他应该在他的回调上调用图表创建和渲染代码。我的图表可以直接呈现,而不用担心数据仍然被加载。
我检查了一些API,但我发现没有人负责解析和加载数据。
P.S。打开建议。