【发布时间】:2018-09-05 06:28:22
【问题描述】:
我正在运行一个很长的循环,需要报告循环的进度。
var mLog=document.getElementById("log");
for (n = 2; (n<10000 && calc_power<power); n=n*2)
{
calc_power=chi_power(n,w,df,delta1,alfa);
var message="n="+n+"<br>";
window.setTimeout(progress(mLog,message), 0);
}
function progress (mLog,message)
{
mLog.innerHTML+=message;
}
我按照建议使用了 window.setTimeout,但 HTML 页面更新仅在循环结束后才完成...
【问题讨论】:
-
您可能正在使用
setTimeout,但这不是“推荐的”。正如所写的那样,您的整个计算必须在其他任何东西有时间运行之前完成,而您最终得到的是一个非常大的微小的 innerHTML 更新队列,等待计算完成后运行。
标签: javascript html logging progress