是否可以异步重绘网站(不阻止UI)?

时间:2015-05-06 19:48:14

标签: javascript ajax asynchronous repaint

让我说我做了一个Ajax调用。响应的处理程序可以是:

function handleAjaxResponse(data) {
    //Do changes to the dom, wich takes 2 seconds
}

在响应即将到来之前,一切都很好。问题在于处理它。

我的问题是 Internet Explorer Firefox 的最新版本。此浏览器会阻止UI进程,直到handleAjaxResponse完全执行。我意味着,我无能为力,网站正在悬挂。

我发现, Google Chrome 对此没有任何问题。

有没有办法重新绘制文档,而不会阻止FF和IE中的UI进程?

1 个答案:

答案 0 :(得分:3)

将更改分解为较小的函数,并将其称为setTimeout回调。这样,UI就有机会处理用户输入而不会挂起。

另见:

How can I give control back (briefly) to the browser during intensive JavaScript processing?