我已经使用D3.js制作了一张小图表。
对于不同类型的输入数据类型,有3种不同的加载函数。
我的图表可以在任何这些数据集中进行渲染,一次基于传递给渲染函数的参数进行渲染。
数据加载代码是异步的,这会导致问题,因为即使在数据完全加载之前,我的渲染功能也会开始绘制。
我给出了单独的加载函数,而不是在render函数中调用它们,因为用户可能只想先加载数据集,然后再渲染图表。
我想到了在开始绘制之前等待一个标志,并在所有数据集都已上传后设置了这个标志,但是对我来说,这是一个无限循环的丑角。
关于设计我有什么想法可以用来完成这项工作?
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来加载文件,而应该要求直接数据。显示“忙碌屏幕”等的责任应全部由API用户承担。
数据集完全加载后,他应该在回调中调用图表创建和渲染代码。我的图表可以使他们直接呈现而不用担心仍在加载数据。
我检查了一些API,但发现没有一个API也负责解析和加载数据。
PS开放征求建议。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句