【发布时间】:2020-12-04 10:49:50
【问题描述】:
我正在开发一个简单的 electron / node.js 应用程序,它在本地获取输入信息,进行一些计算并将计算结果呈现在一个表格中
输入:
10s of rows of features info
ID | length | depth |
计算:每个特征计算大约需要几秒钟。
输出:
Some amount of row from input, but with a results column
ID | length | depth | Results
我尝试将结果附加到表格中进行呈现,代码如下所示
<table id = 'results-table'>
<th>ID</th><th>length</th><th>depth</th><th>Results</th>
</table>
function getCrackTableValues(){
document.body.style.cursor = 'wait';
var table = document.getElementById('input-table'); //get info from input table
for (var r = 1, n = table.rows.length; r < n; r++) { //skip table head tart from second row
const crackID = table.rows[r].cells[0].innerHTML; //input
var a_m = Number(table.rows[r].cells[1].innerHTML); // input
var c_m = Number(table.rows[r].cells[2].innerHTML); //input
var result = foo(a_m, c_m); //foo just for example, takes seconds for calculation
var newRow = document.getElementById('results-table').insertRow(); //output table
newRow.innerHTML = '<td>'+ crackID+
'</td><td>' + `${a_m.toFixed(1)}` +
'</td><td>' + `${c_m.toFixed(1)}` +
'</td><td>' + `${result.toFixed(1)}` + //append results to output table
'</td>';
}
document.body.style.cursor = 'default';
}
代码工作正常,但有几个问题。
Q1:我希望一次计算完成后,它会在输出表上显示结果,然后转到下一个条目的计算。因此用户可以看到当前结果,而其余行的计算仍在进行中。
目前看来,在所有计算完成之前,输出表不会显示。
我有什么方法可以让结果表随着每一行的计算而逐一增长/显示?
Q2:我试图在计算进行时禁用光标document.body.style.cursor = 'wait';。并在所有计算完成后重新启用光标。
但似乎这一行执行了 计算,它只会禁用光标并闪回。
我当前的实施是否存在任何潜在问题?我的 node.js 是 v12.16.3,在旧的 32 位 windows 7 上。
【问题讨论】:
标签: javascript html node.js electron