我有一个从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);
答案 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);