必须有一种简单的方法来做到这一点,但我是 JS 新手。
我有一个 javascript 程序,它 (1) 接受用户输入,(2) 根据该输入更新网页,然后 (3) 执行冗长的计算。问题是网页直到经过冗长的计算后才注册更新。有没有办法暂停执行,以便页面可以在长时间计算之前更新?
我试过 setTimeout 和 window.setTimeout,但它们没有区别。
该程序用于玩游戏:用户输入移动,脚本更新位置,然后计算其下一步移动。postMessage 使用 div.innerHTML 打印文本消息;buttonFn 接受用户的输入,更新位置,打印一条消息,然后启动计算机计算。
function buttonFn(arg){
var hst = histButt;
hst.push(arg);
var nwmv = hst.clone();
postMessage("New move: " + nwmv.join());
if(status == opposite(comp) && !pauseQ){
var mvsposs = movesFromPos(posCur,status);
if(mvsposs.has(nwmv)){
updatePosCur(nwmv);
//waitasec();
if(comp == status && !pauseQ){
compTurn();
};
}
else{
histButt = nwmv;
};
};
};
Run Code Online (Sandbox Code Playgroud)