我使用Cordova / PhoneGap构建了一个应用程序,并使用了幼稚的方法来获取数据。我只是将两个(制表符分隔的)CSV文件转换为数组,然后在这些数组上运行了一些查找功能(未显示)。
// Load the rankings.csv file and define its parameters.
var requests = new XMLHttpRequest(); // You only need one XMLHttpRequest() object.
requests.open("GET", "docs/rankings.csv", false);
requests.send(null);
var l2Ranks = [];
var jsoRanks = requests.responseText.split("\n");
for (x = 0; x < jsoRanks.length; x++) {
l2Ranks.push(jsoRanks[x].split("\t"));
for (y = 0; y < l2Ranks.length; y++) {
for (z = 0; z < l2Ranks[y].length; z++) {
l2Ranks[y][z] = Number(l2Ranks[y][z]);
}
}
}
// Load the sentences.csv file and define its parameters.
requests.open("GET", "docs/sentences.csv", false);
requests.send(null);
var l2Sents = [];
var jsoSents = requests.responseText.split("\n");
for (x = 0; x < jsoSents.length; x++) {
l2Sents.push(jsoSents[x].split("\t"));
for (y = 0; y < l2Sents.length; y++) {
l2Sents[y][0] = Number(l2Sents[y][0]);
}
}
现在,当CSV文件较小时,此方法可以正常工作。但是,加载时间已变得明显更长。我最初打算使用加载屏幕来屏蔽它,但是我怀疑有一种更快的方法可以有效地加载我的数据。
所以我考虑了一些选择:
其中哪些会更快?另外,关于选项(1),简单的查找功能(类似于电子表格软件中的INDEX(MATCH()))会是什么样?
当前,我的其他函数(未显示)找到l2Ranks的指定列,获取其ID号(l2Ranks和l2Sents中的第0个项目),然后返回与相同的指定列和包含ID号的行。那里的减速速度为零。