我正在尝试在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; ,进度条完成得非常快。有没有办法减缓这个。
你可以在这里找到我的申请。
有没有办法添加滑动条来控制进度条。我们可以用php或HTML 5做的事情。
由于
答案 0 :(得分:1)
为什么不为此使用HtmlServices。就试一试吧: Click Here
您可以使用jquery来实现此目的。
答案 1 :(得分:0)
不,没有真正的方法可以在Apps脚本上执行进度条。
虽然有一些解决方法。您可以将多个处理程序添加到同一个按钮,并且在每个处理程序中,使用不同的休眠时间,您可以多次更新GUI。或者,像大多数人一样,在客户端处理程序中显示无限进度的gif动画(用于即时反馈),在第二个处理程序完成后,在实际执行工作的ServerHandler中,隐藏图像并返回结果。
答案 2 :(得分:0)
更新的答案:要获取运行服务器端的脚本的状态,您需要将进度存储到缓存中。然后客户端可以调用服务器端函数来检索它。 https://developers.google.com/apps-script/reference/cache/cache-service