1

所以我有一个巨大的数据集,我正在 HTML5 画布上绘制,所以绘制它大约需要 3 秒。所以在那三秒钟内,我需要显示一个加载栏来向用户传达正在发生的事情。基本上,在这段时间里,我正在绘制一个屏幕外的画布,该画布在我的应用程序使用期间用作缓存。我想在发生这种情况时更新加载栏,但由于某种原因,jquery 忽略了我在绘图完成后调整加载栏大小的调用,此时加载栏有点没用,因为它只是跳到 100%

所以这是我想要做的事情的要点......

function drawStuff() {
    for(p in points) {
        points[p].draw();
        updateLoadingBar(p/points.length);
    }

}


function updateLoadingBar(percent) {
    $('#loading_bar').width(percent+'%');
}

这段代码有点简单。不,它实际上并没有在循环中获取 DOM 元素,但这更简洁并且具有相同的结果。重要的是整个浏览器都锁定了,什么也没有发生。在任何其他语言中,您只需启动一个工作线程来执行此操作,但这不是一个选项,所以我想知道在做大量工作的同时保持响应式 UI 的最佳方法是什么。

谢谢。

4

0 回答 0