等待渲染图表直到数据加载完毕
Waiting for rendering a chart till data has loaded
我用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.
我想出了一个解决办法。
我意识到数据加载部分应该留给 API 用户。我不应该要求 URL 来加载文件,而应该只要求直接数据。显示 'busy screen' 等的责任应全部由 API 用户承担。
他应该在数据集完全加载后在回调中调用图表创建和呈现代码。我的图表可以直接呈现而不用担心数据仍在加载。
我检查了一些 API,我发现 none 也负责解析和加载数据。
P.S。欢迎提出建议。
我用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.
我想出了一个解决办法。
我意识到数据加载部分应该留给 API 用户。我不应该要求 URL 来加载文件,而应该只要求直接数据。显示 'busy screen' 等的责任应全部由 API 用户承担。
他应该在数据集完全加载后在回调中调用图表创建和呈现代码。我的图表可以直接呈现而不用担心数据仍在加载。
我检查了一些 API,我发现 none 也负责解析和加载数据。
P.S。欢迎提出建议。