Javascript 我应该使用requestAnimationFrame来分发计算吗?

Javascript 我应该使用requestAnimationFrame来分发计算吗?,javascript,html,requestanimationframe,Javascript,Html,Requestanimationframe,我有一个大的JS计算,我想在页面加载时完成。在一台像样的计算机上,计算大约需要5-10秒,这太长了,因为浏览器会冻结这段时间 我可以很容易地将计算分为几部分,大约需要8毫秒来计算。我希望通过将每个块附加到画布元素来渲染它。尝试使用requestAnimationFrame分发这些块是否明智?有没有更好的选择?为什么 背景资料: 我使用html2canvas将页面渲染为图像,然后使用超快速模糊对图像进行模糊处理。这样做的原因是为了复制iOS7的磨砂玻璃效果。有关这方面的更多信息,请参阅。 根据页面

我有一个大的JS计算,我想在页面加载时完成。在一台像样的计算机上,计算大约需要5-10秒,这太长了,因为浏览器会冻结这段时间

我可以很容易地将计算分为几部分,大约需要8毫秒来计算。我希望通过将每个块附加到画布元素来渲染它。尝试使用requestAnimationFrame分发这些块是否明智?有没有更好的选择?为什么

背景资料: 我使用html2canvas将页面渲染为图像,然后使用超快速模糊对图像进行模糊处理。这样做的原因是为了复制iOS7的磨砂玻璃效果。有关这方面的更多信息,请参阅。
根据页面的尺寸,这需要相当长的时间

如果不打算呈现单独的步骤,则应使用setInterval或setTimeout。如果您不想设置动画,那么使用requestAnimationFrame是没有意义的

调用setTimeout时的第二个参数是调用函数之前经过的时间(以毫秒为单位)。您也可以将其设置为1ms,但至少需要4ms才能被调用

var timeoutId = 0,
    calc = function() {
        // Your calculations go here

        if(!finished) {
            timeoutId = setTimeout(calc, 4);
        }
}

calc();

是的,我确实希望渲染每个步骤并将渲染的位附加到画布元素。