2014-09-02 18 views
0

我有沒有工作拷貝的公平位創建一個數據庫,然後複製一堆文件到它的基本結構是SSJS的塊:不能得到一個對話框下來

try{ 
getComponent("waitDialog").show(null); 

// do stuff 
}catch(e){ 
// do the error stuff 
}finally { 
getComponent("waitDialog").hide(null); 
} 

執行此代碼的按鈕執行完全刷新當我單擊按鈕時,出現對​​話框,並且後臺代碼執行,但是當它點擊getComponent(「waitDialog」)時。hide(null);它不會把對話關閉。我知道它到達終點,因爲我在那時有一個輸出到服務器控制檯。我在其他地方使用了一個對話框,並且getComponent()。hide(null)在它們中工作,但在這些情況下,我從對話框上的按鈕關閉對話框,但我不想在此處這樣做。另外我想刪除用戶關閉對話框的「X」。還是有更好的方法來做這種事

回答

1

從它的聲音,你試圖顯示,然後隱藏對話,所有從服務器,在一次往返。你不能這樣做。對話框顯示和隱藏需要被髮送回瀏覽器以便進行UI更改,並且只有在刷新完成後纔會發生。

在這種情況下,我希望你會像你一樣得到意想不到的結果。如果我從邏輯上思考它,我會認爲你永遠不會看到對話框,但我必須跟蹤後端代碼才能看到。

我的建議是做一次部分刷新,並在刷新的onStart中顯示一個指示器,指示某事正在處理,然後在onComplete(和onError)中刪除該指示器。我也不會使用對話框,因爲你提到的原因(它使用戶能夠與UI進行交互,我會研究一些其他形式的進度指示器,例如,如果您搜索「OpenNTF」局部刷新」 - >http://openntf.org/main.nsf/projects.xsp?query=partial%20refresh

相關問題