让我说我做了一个Ajax调用。响应的处理程序可以是:
function handleAjaxResponse(data) {
//Do changes to the dom, wich takes 2 seconds
}
在响应即将到来之前,一切都很好。问题在于处理它。
我的问题是 Internet Explorer 和 Firefox 的最新版本。此浏览器会阻止UI进程,直到handleAjaxResponse
完全执行。我意味着,我无能为力,网站正在悬挂。
我发现, Google Chrome 对此没有任何问题。
有没有办法重新绘制文档,而不会阻止FF和IE中的UI进程?
答案 0 :(得分:3)
将更改分解为较小的函数,并将其称为setTimeout
回调。这样,UI就有机会处理用户输入而不会挂起。
另见:
How can I give control back (briefly) to the browser during intensive JavaScript processing?