Javascript同步加载表文件

标签 javascript ajax asynchronous xmlhttprequest

我知道 this implementation 用于调用本地文本文件。

我的问题是,我不希望它异步读取文件。相反,我希望函数读取文件并将输出作为字符串变量返回。

我的文件采用以下格式:

time    acceleration    velocity    position
0   0   0   0
0.1 0.7584280404    0.075842804 0.0075842804
0.2 0.1291023633    0.0887530404    0.0164595844
0.3 0.4040327317    0.1291563135    0.0293752158
0.4 0.8891570587    0.2180720194    0.0511824177
0.5 0.3481323377    0.2528852532    0.0764709431
0.6 0.8920292137    0.3420881745    0.1106797605
0.7 0.7375283292    0.4158410075    0.1522638613
0.8 0.2647998196    0.4423209894    0.1964959602
0.9 0.633358462 0.5056568356    0.2470616438
1   0.3901214569    0.5446689813    0.3015285419
1.1 0.4712272086    0.5917917022    0.3607077121
1.2 0.693854515 0.6611771537    0.4268254275
1.3 0.4248616176    0.7036633154    0.497191759

输出将存储在包含以下字段的obj

obj.time
obj.acceleration
obj.velocity
obj.position

这些字段必须从文本文件的第一行获取。一切都是从本地主机完成的,没有什么是远程的,所以我不关心加载繁重的 js 库需要多长时间。如果有人让我知道我正在寻找的东西是否有捷径,那就太好了。如果没有库可以做到这一点,请告诉我至少如何同步读取文件。

最佳答案

您可以使用get请求来下载文件内容并自行解析数据。使用 jQuery get 方法(您基本上可以用任何其他库替换 jQuery,或者忘记任何额外的库并手动发出 xhr 请求):

 $.ajax({
     url: 'http://domain.com/path/to/your/file.txt',
     async: true
   }).
   success(function (data) {
     var parsedData = parseMyFormat(data);
     console.log(parsedData[0].position);
   });

 function parseMyFormat (data) {
   var parsed = [];
   //split your data by new line and iterate over lines
     var item = {};
     //split each line by tab (\t) and put 
        item.time = col[0];
        item.acceleration = col[1];
        item.velocity = col[2];
        item.position = col[3];
     parsed.push(item);
 }

关于Javascript同步加载表文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35566884/

相关文章:

c# - 如何以异步方法向 UI 提供反馈?

javascript - 循环中的多个异步函数调用

javascript - Google Analytics 事件跟踪作为客户端错误日志

javascript - 如何让函数调用先执行然后再执行后续代码?

javascript - 如何为响应式设计禁用 javascript

php - 意外的标记 < AJAX jquery

JavaScript 变量未正确解释

javascript - 以异步方式执行 Express res.render

javascript - 在 JavaScript 中添加数字数组时出现奇怪的结果

javascript 正则表达式匹配标签名称