将requestAnimationFrame回调与Web worker同步

时间:2016-05-07 21:20:28

标签: javascript dart

从概念上讲,我有一个requestAnimationFrame回调,如下所示:

render(now) {
    a = A(now); // long running computation
    b = B(now); // another long running computation
    [update DOM using a, b]
    requestAnimationFrame(render)  // re-trigger animation   
} 

我想在Web worker中运行A()来提高帧速率。 由于时间上的小不一致是可以接受的,我想 转换为运行所有计算的类似的东西 Web工作者中的A()。

render(now) {
    a = [wait for/retrieve previous result for A(now') from web worker]
    [start new computation of A(now) in web worker]
    b = B(now); 
    [update DOM using a, b]
    requestAnimationFrame(render)
} 

我的主要问题是“等待/检索以前的结果”部分。 在这里使用“等待”或类似因素会导致问题,因为控制可以 在DOM更新发生之前返回浏览器。

我对Dart或JavaScript中的解决方案感兴趣。

0 个答案:

没有答案