2012-05-18 142 views
0

我试图在Google应用脚本中创建一个进度条,当某个人点击一个按钮(Go)时,它会自动缓慢地开始结束。在Firefox下载窗口中看到的东西。 这是我的代码。Google App脚本进度条

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/macros/dewdynamics.net/exec?service=AKfycbztKB_ljMBGi_55RrK_DH3x_pRZQ993bDoAHSsxDA

有什么办法增加一个滑杆,来控制进度条。这个问题我们可以在PHP或HTML做5

感谢

回答

0

没有,没有做到对Google Apps脚本在进度条真正的出路。

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

+0

谢谢你的建议..我会尝试客户端处理程序中的动画gif。 –

+0

Henrique会如何工作?你是什​​么意思“多个处理程序”?你有代码片段吗? –

+0

@Trevor好吧,只要添加它们:'btn.addClickHandler(handler1).addClickHandler(handler2)',假设你知道如何创建处理程序:'handler1 = app.createServerHandler('functionA')'。无论如何,这个答案是非常古老的,如果真的需要一个真正的进度条,HtmlService可能是一个更好的主意。 –

1

为什么你不使用HtmlServices。试试吧: Click Here

你可以使用jQuery来实现这一点。