gpt4 book ai didi

javascript - 我应该使用 requestAnimationFrame 来分配计算吗?

转载 作者:行者123 更新时间:2023-11-28 08:45:12 26 4
gpt4 key购买 nike

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

我可以轻松地将计算分成大约需要 8 毫秒才能计算的 block 。我想通过将每个 block 附加到 Canvas 元素来渲染它。尝试使用 requestAnimationFrame 分发这些 block 是否明智?也许有更好的选择(以及为什么)?

<小时/>

背景信息:我使用 html2canvas 将页面渲染为图像,然后使用 Superfast Blur ( http://www.quasimondo.com/BoxBlurForCanvas/FastBlurDemo.html ) 模糊图像。这样做的原因是为了复制iOS7的毛玻璃效果。有关这方面的更多信息,请参阅 http://abduzeedo.com/ios7-frosted-glass-effect-html-5-and-javascript 。根据页面的尺寸,这需要相当长的时间。

最佳答案

如果您不打算渲染单独的步骤,则应使用 setIntervalsetTimeout。如果您不想制作动画,则使用 requestAnimationFrame 是没有意义的。

调用setTimeout时的第二个参数是调用函数之前耗时(以毫秒为单位)。你也可以将其设置为 1ms,但无论如何,至少需要 4ms 左右才能被调用。

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

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

calc();

关于javascript - 我应该使用 requestAnimationFrame 来分配计算吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19907175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com