我有一个从 CSV 文件生成的 D3.js 表,我正在尝试弄清楚如何让它更新值,A) 当 CSV 修改时或 B) 每 10 秒更新一次。
我遇到的问题是,我在浏览器控制台中不断收到“刷新”未定义的错误。
有人可以显示我的错误吗?我的 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);
最佳答案
您找不到刷新函数,因为它在此函数内:
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);
关于javascript - 每 5 秒刷新一次 D3 生成的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37191727/