我将 Datatables 和 Highcharts 用于报告屏幕,但加载图表很慢(大约 10 秒),使用 performance.now()
我可以看到下面的部分导致延迟:
请注意,'indexes' 数组包含 6500 多条记录。
var monthTO = {};
var indexes = TurnoverRepoTable.rows({ search: 'applied' }).indexes().toArray();
for (var i = 0; i < indexes.length; i++) {
var cMonth = TurnoverRepoTable.cell(indexes[i], 2).data();
var value = TurnoverRepoTable.cell(indexes[i], 6).data();
if (monthTO[cMonth] === undefined) {
monthTO[cMonth] = Number(value);
} else {
monthTO[cMonth] = monthTO[cMonth] + Number(value);
}
}
那么,我想知道是否有更有效的方法来实现这一目标?
干杯,克里斯
答案 0 :(得分:0)
嗨, 我通过直接引用数据(而不是使用索引)解决了这个问题,代码如下:
var dataset = TurnoverRepoTable.rows({ search: 'applied' }).data().toArray();
// For each row, extract the office and add the salary to the array
for (var i = 0; i < dataset.length; i++) {
var cMonth = dataset[i].job.cMonth
var value = dataset[i].job.estout
if (monthTO[cMonth] === undefined) {
monthTO[cMonth] = Number(value);
} else {
monthTO[cMonth] = monthTO[cMonth] + Number(value);
}
}