3 回答

TA貢獻(xiàn)1865條經(jīng)驗 獲得超7個贊
如果您可以將計算算法轉(zhuǎn)換為可以迭代調(diào)用的內(nèi)容,則可以使用具有短超時值的setTimeout以頻繁的間隔釋放控制權(quán)。
例如,像這樣......
function doCalculation()
{
//do your thing for a short time
//figure out how complete you are
var percent_complete=....
return percent_complete;
}
function pump()
{
var percent_complete=doCalculation();
//maybe update a progress meter here!
//carry on pumping?
if (percent_complete<100)
{
setTimeout(pump, 50);
}
}
//start the calculation
pump();

TA貢獻(xiàn)1826條經(jīng)驗 獲得超6個贊
使用超時。
通過將循環(huán)的內(nèi)容放入單獨的函數(shù)中,并使用超時50左右的setTimeout()調(diào)用它們,javascript將產(chǎn)生對線程的控制并在稍后返回,允許UI獲得順便拜訪。
有一個很好的workthrough 這里。
添加回答
舉報