2

我想在 JavaScript 中进行大量计算时使用 google 闭包库显示进度条。示例代码如下。

// An essential code which is not working well
var pb = new goog.ui.ProgressBar;

for (i = 0; i < 100; i += 1) {
   // Some costly process here
   pb.setValue(i);
};

我知道 JavaScript 是完全单线程模型。所以上面的一个片段没有像我预期的那样工作。有谁知道在这种情况下使用关闭进度条的有效方法?

提前致谢。

4

1 回答 1

2

最常见的方法是将昂贵的流程分解成小块,并在每次迭代时更新进度条。除非您想考虑使用web workers,但这些仅在少数现代浏览器中受支持。

另外,不要忘记声明i变量,否则它将成为隐含的​​全局变量。

于 2010-12-24T17:14:46.320 回答