我是D3.js的初学者,我在节点和网页上做了一个服务器,以便进行测试。我在服务器中编译数据,我想在网页的表格中显示。所以,我在网上发现了以下D3示例,我尝试使用。因此,当执行测试时,它的效果非常好。但是,当我进行第二次测试时,如果没有刷新网页,则会将所获得的数据加载两次。如果我做三次测试,它会加载三次......如何在图片中看到它。我想只加载一次数据。为此,我试图将包含表格的容器(csvTable)空白,刷新数据矩阵后保存在.csv文件中。然而,直到现在还没有任何工作。如果有人能帮助我,我真的很感激。
function doTable(){
clearBox("csvTable");
d3.text("data/data.csv", function(data) {
var parsedCSV = d3.csv.parseRows(data);
var container = d3.select('#csvTable')
.append("table")
.selectAll("tr")
.data(parsedCSV).enter()
.append("tr")
.selectAll("td")
.data(function(d) { return d; }).enter()
.append("td")
.text(function(d) { return d; });
});
}
答案 0 :(得分:-1)
如何将整个d3.text()函数包含在if语句中,如下所示:
if (!d3.select('#table-id)){
d3.text("data/data.csv", function(data) {
var parsedCSV = d3.csv.parseRows(data);
var container = d3.select('#csvTable')
.append("table")
.attr('id', 'table-id')
.selectAll("tr")
.data(parsedCSV).enter()
.append("tr")
.selectAll("td")
.data(function(d) { return d; }).enter()
.append("td")
.text(function(d) { return d; });
});
}
我没有对代码进行过测试,但这些代码中的某些内容应该有效。