Google App脚本进度条

时间:2012-05-18 11:07:18

标签: google-apps-script

我正在尝试在Google应用脚本中创建一个进度条,当有人单击一个按钮(Go)时,它会自动进入,慢慢开始结束。你在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;

}

但是根据这个代码for循环将执行非常快速&amp; ,进度条完成得非常快。有没有办法减缓这个。

你可以在这里找到我的申请。

https://sites.google.com/a/macros/dewdynamics.net/exec?service=AKfycbztKB_ljMBGi_55RrK_DH3x_pRZQ993bDoAHSsxDA

有没有办法添加滑动条来控制进度条。我们可以用php或HTML 5做的事情。

由于

3 个答案:

答案 0 :(得分:1)

为什么不为此使用HtmlServices。就试一试吧:  Click Here

您可以使用jquery来实现此目的。

答案 1 :(得分:0)

不,没有真正的方法可以在Apps脚本上执行进度条。

虽然有一些解决方法。您可以将多个处理程序添加到同一个按钮,并且在每个处理程序中,使用不同的休眠时间,您可以多次更新GUI。或者,像大多数人一样,在客户端处理程序中显示无限进度的gif动画(用于即时反馈),在第二个处理程序完成后,在实际执行工作的ServerHandler中,隐藏图像并返回结果。

答案 2 :(得分:0)

更新的答案:要获取运行服务器端的脚本的状态,您需要将进度存储到缓存中。然后客户端可以调用服务器端函数来检索它。 https://developers.google.com/apps-script/reference/cache/cache-service