防止长时间运行的JavaScript锁定浏览器

我有JavaScript,它可以执行大量计算以及从DOM中读取/写入值。该页面很大,因此通常会阻塞浏览器长达一分钟的时间(有时使用IE会更长),并且CPU使用率达到100%。

是否有任何资源可以优化JavaScript以防止这种情况发生(我所能找到的就是如何关闭Firefox长期运行的脚本警告)?

回答:

如果您可以将计算算法转换为可迭代调用的内容,则可以使用具有短超时值的setTimeout来频繁地将控制权释放回浏览器。

例如,像这样的东西

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();

以上是 防止长时间运行的JavaScript锁定浏览器 的全部内容, 来源链接: utcz.com/qa/410341.html

回到顶部