質問

Google App Scriptingで進行状況バーを作成しようとしています。Firefoxのダウンロードウィンドウに表示されているもの。 これが私のコードです。

function doGet(e) {
  var app = UiApp.createApplication();
  var progressPanel = app.loadComponent("progressbar_auto");
  var gobutton =app.getElementById("go_btn");

  var go_btn_handler =app.createServerHandler("updateProgressbar");
  go_btn_handler.addCallbackElement(gobutton);
  gobutton.addClickHandler(go_btn_handler)


  app.add(progressPanel);
  return app;
}
//function time(i){
//    Utilities.sleep(5);
//  }
function updateProgressbar(){
  var app = UiApp.getActiveApplication()

  for(var i =1 ; i < 250 ; i++ ){

    app.getElementById("progress").setWidth(i + 'px');
    time();
  }
 Logger.log(i);
  return app;

}
.

しかし、ループのためのこのコードによると、非常に迅速に実行されます、進行状況バーは非常に速く完了しました。これを遅くする方法はありますか。

ここに私のアプリケーションを見つけることができます。

https://sites.google.com/a/マクロ/ dewdynamics.net / exec?service= akfycbztkb_ljmbgi_55rrk_dh3x_przq93bdoahssxda

進行状況バーを制御するためにスライドバーを追加する方法はあります。私たちがPHPまたはHTML 5でできること。

ありがとう

役に立ちましたか?

解決

いいえ、Appsスクリプトで進行状況バーを実行する方法はありません。

いくつかの回避策があります。同じボタンに複数のハンドラを追加でき、それぞれが異なるスリープ時間で、GUIを何度も更新できます。または、ほとんどの場合、クライアントハンドラ(インスタントフィードバック用)で無限の進行状況GIFアニメーションを表示し、2番目のハンドラが終了した後、実際に作業を行うサーバーハンドラは画像を非表示にして結果を返します。

他のヒント

これにHTMLServicesを使用しないのですか。やってみなよ: >ここをクリック

これを実装するためにjQueryを使うことができます。

更新回答:サーバ側のスクリプトのステータスを取得するには、キャッシュに進捗状況を保存する必要があります。その後、クライアント側はサーバー側機能を呼び出して検索できます。 https://developers.google.com/apps-script/script/script/script/Reference/キャッシュ/キャッシュサービス

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top