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ワーカーの使用を検討したい場合を除いてですが、これらはいくつかの最新のブラウザーでのみサポートされています。

別の注意点として、変数を宣言することを忘れないでください。iそうしないと、暗黙のグローバル変数になります。

于 2010-12-24T17:14:46.320 に答える