所以我有一个巨大的数据集,我正在 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 的最佳方法是什么。
谢谢。