Google App Scripting Progress Bar.
-
11-12-2019 - |
質問
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;
}
.
しかし、ループのためのこのコードによると、非常に迅速に実行されます、進行状況バーは非常に速く完了しました。これを遅くする方法はありますか。
ここに私のアプリケーションを見つけることができます。
進行状況バーを制御するためにスライドバーを追加する方法はあります。私たちがPHPまたはHTML 5でできること。
ありがとう
解決
いいえ、Appsスクリプトで進行状況バーを実行する方法はありません。
いくつかの回避策があります。同じボタンに複数のハンドラを追加でき、それぞれが異なるスリープ時間で、GUIを何度も更新できます。または、ほとんどの場合、クライアントハンドラ(インスタントフィードバック用)で無限の進行状況GIFアニメーションを表示し、2番目のハンドラが終了した後、実際に作業を行うサーバーハンドラは画像を非表示にして結果を返します。
他のヒント
これにHTMLServicesを使用しないのですか。やってみなよ: >ここをクリック
これを実装するためにjQueryを使うことができます。
更新回答:サーバ側のスクリプトのステータスを取得するには、キャッシュに進捗状況を保存する必要があります。その後、クライアント側はサーバー側機能を呼び出して検索できます。 https://developers.google.com/apps-script/script/script/script/Reference/キャッシュ/キャッシュサービス
所属していません StackOverflow