每5秒刷新一次D3生成的表

时间:2016-05-12 15:45:50

标签: javascript d3.js

我有一个从CSV文件生成的D3.js表,我正在试图弄清楚如何更新值A)当修改CSV时或B)每10秒更新一次。 / p>

我遇到的问题是我在浏览器控制台中一直收到“刷新”未定义的错误。

有人可以显示我的错误吗?我的setTimeout似乎不起作用;它可能很简单,但我对javascript并不是很了解。

 d3.text("http://somesite/somefile.csv", function refresh(data) {

            var containerclear = d3.select("body").select("table").remove();

            var parsedCSV = d3.csv.parseRows(data);

            var container = d3.select("body")
                .append("table")

                .selectAll("tr")
                    .data(parsedCSV).enter()
                    .append("tr")

                .selectAll("td")
                    .data(function(d) { return d; }).enter()
                    .append("td")
                    .text(function(d) { return d; });

        });
        setTimeout(function() {
                    refresh(data);
                    }, 5000);

1 个答案:

答案 0 :(得分:1)

您无法在此功能中找到刷新功能:

d3.text("http://somesite/somefile.csv", function refresh(data) {

将其移到外面:

  function refresh(data) {

                var containerclear = d3.select("body").select("table").remove();

                var parsedCSV = d3.csv.parseRows(data);

                var container = d3.select("body")
                    .append("table")

                    .selectAll("tr")
                        .data(parsedCSV).enter()
                        .append("tr")

                    .selectAll("td")
                        .data(function(d) { return d; }).enter()
                        .append("td")
                        .text(function(d) { return d; });

            }

并在此处致电:

 d3.text("http://somesite/somefile.csv", function(data){ refresh(data)}); //using the somefile.csv

在这里:

setTimeout(function() {
                    refresh(data); //using a different dataset
                    }, 5000);