javascript - 如何顺利加载 10 个 500kb 的 csv 文件并将数组与 javascript 和 HTML5 合并?

标签 javascript html css d3.js

给定同一目录下的 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/

相关文章:

javascript - 表单选择器不适用于动态标记

javascript - 在 React 之外更新 View

javascript - 通过 Javascript 或控制台选择所有复选框

html - Chrome 登录自动下拉菜单太大

javascript - jQuery 淡入淡出动画不流畅

jquery - 从多选下拉列表中的 optgroup 选项中仅选择一个

javascript - 为什么定义了 href 的 'a' 标签不可点击?

javascript - 在 D3 中放大和缩小时如何更改平移和缩放的速度(使用 zoom.on 和 d3.event.translate,d3.event.zoom)?

javascript - 有没有办法使用 createJS/easelJS 来计算当前在舞台上显示的对象数量?

CSS 文件位置 Ruby