我是d3.js的新手,在加载数据时,我到目前为止看到的例子看起来像
getCurrentInputConnection().commitText("\ud83d\ude01", 1)
我有一个函数返回动态服务器端生成的csv,我使用同步POST ajax生成它们,但为了简单起见,我可以说,我有一个像这样的js函数
d3.csv("path/to/file.csv")...
有没有办法做这样的事情?并且这种方法是否被推荐(同步ajax肯定会导致延迟)
function makeCSV(){
return "id,value\n"+
"0,value 1\n"+
"1,value 2\n"+
}
关于CSV数据加载的其他相关问题是,是否需要提供.csv文件,或者是否可以简单地放置生成和下载动态生成的csv文件的URL,这可以作为AJAX调用的替代品但手动编码每个参数看起来很乏味和非动态
d3.csv(makeCSV())...
答案 0 :(得分:2)
根据规范d3.csv()
要求第一个参数是从中加载CSV的URL。如果您只想解析包含CSV内容的字符串,无论其创建方式如何,您都需要使用d3.csv.parse()
代替。对于你的代码,这将是这样的
var rows = d3.csv.parse(makeCSV());
function makeCSV(){
return "id,value\n"+
"0,value 1\n"+
"1,value 2\n";
}
var rows = d3.csv.parse(makeCSV())
console.log(rows);

<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
&#13;