2012-05-18 186 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來實現這一點。