【发布时间】:2010-10-15 02:18:22
【问题描述】:
必须有一种简单的方法来做到这一点,但我是 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;
};
};
};
【问题讨论】:
-
一个代码示例在这里会有所帮助...
-
所有进程都在客户端处理?
-
函数 postMessage(txt){ messageHist.push(txt); messageHist = messageHist.slice(1); var mesdiv = document.getElementById("messageDiv"); //messageHist.reverse(); mesdiv.innerHTML = messageHist.join("
"); //messageHist.reverse(); }; -
在处理stackoverflow.com/questions/51352/…时使用微调器
-
将代码放在原始问题中,而不是 cmets
标签: javascript html