给定同一目录下的 10 个 csv 文件,格式相同,但值不同。每个文件大小约为 500kb。
mergedData = []
for (f in filelist) {
d3.tsv(f, function(error, data)){
//Following code cannot work as expected
mergedData = mergedData.concat(data)
//then plot with d3js using mergedData
...
}
}
我将这些数据用于 D3 的可视化,并意识到 JavaScript 是单线程的。
唯一的解决方案可能是 Web Workers,它可以在后端运行。但基于 http://www.w3schools.com/html/html5_webworkers.asp
Since web workers are in external files, they do not have access to the following JavaScript objects:
The window object The document object The parent object
最佳答案
有一些库支持文件的异步加载。其中之一是由 D3.js 的创建者 Mike Bostock 开发的。看看他的queue.js这是相当纤薄和轻巧的。如果这不符合您的需求,可以在 queue.js 页面上链接到其他库。
关于javascript - 如何顺利加载 10 个 500kb 的 csv 文件并将数组与 javascript 和 HTML5 合并?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30931726/