{c 44}}从csv文件中显示D3.js表

时间:2017-06-13 06:44:29

标签: javascript html d3.js

我是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; });
    });

}

enter image description here

1 个答案:

答案 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; });
   });
}

我没有对代码进行过测试,但这些代码中的某些内容应该有效。