Javascript d3.js使用函数作为csv源,而不是csv路径

Javascript d3.js使用函数作为csv源,而不是csv路径,javascript,csv,d3.js,Javascript,Csv,D3.js,我是d3.js新手,在加载数据时,我看到的示例如下 d3.csv("path/to/file.csv")... 我有一个返回动态服务器端生成的csv的函数,我使用synchronous POST ajax来生成它们,但是为了简单起见,我有一个类似这样的js函数 function makeCSV(){ return "id,value\n"+ "0,value 1\n"+ "1,value 2\n"+ } var rows = d3.csv.

我是d3.js新手,在加载数据时,我看到的示例如下

d3.csv("path/to/file.csv")...
我有一个返回动态服务器端生成的csv的函数,我使用synchronous POST ajax来生成它们,但是为了简单起见,我有一个类似这样的js函数

function makeCSV(){
    return "id,value\n"+
           "0,value 1\n"+
           "1,value 2\n"+
}
var rows = d3.csv.parse(makeCSV());
有没有办法做到这一点?这种方法是否值得推荐(同步ajax肯定会导致延迟)

关于CSV数据加载的其他相关问题是,是否需要提供.CSV文件,或者是否可以简单地放置URL以生成并下载动态生成的CSV文件,这可以替代AJAX调用,但手动编码每个参数看起来很乏味且非动态

d3.csv("?action=makeCSV&param1=val1&param2=val2")...
根据规范要求,第一个参数是加载CSV的url。如果您只想解析包含CSV内容的字符串,而不管该内容是如何创建的,则需要使用。对于您的代码,这可能是这样的

function makeCSV(){
    return "id,value\n"+
           "0,value 1\n"+
           "1,value 2\n"+
}
var rows = d3.csv.parse(makeCSV());
函数makeCSV(){
返回“id,value\n”+
0,值1\n+
“1,值2\n”;
}
var rows=d3.csv.parse(makeCSV())
console.log(行)

是的,您可以执行d3.csv(makeCSV(),函数(error,data){data.forEach(函数(d){d.;});)@NagaSaiA当然可以,但这将导致错误,因为
makeCSV()
不返回URL。我只是为您问题的第一部分添加了答案,但我不太理解关于动态加载CSV的第二部分。请您更具体一点并添加一些详细信息。不过,这可能是一个问题本身。