2015-05-30 54 views
1

有沒有辦法在服務器端函數運行時將值傳遞迴HTML pageHTML正在加載消息

在過去,當我用的是UI服務,在功能年初,我只想在這樣的UI創建標籤:

app.createLabel('Working, hang on!'); 

雖然的腳本運行它會出現,讓他們知道腳本正在運行。當到了腳本的某些部分我會那麼可以更新/創建像一個新的消息:

app.createLabel('Halfway there, hold on.'); 

或者

app.createLabel('Fetched values, processing them'); 

等,告訴他們我們在哪裏,如果腳本運行了很長時間。另外一個好處是,它也可以幫助他們瞭解什麼方向劇本走,因此,例如,如果一個房間預訂腳本,發現第一個房間是不可用的,它可以傳遞一個信息,如:

app.createLabel('First room was busy, checking other rooms'); 

等等等等。

有沒有辦法用HTML服務做到這一點?看起來我唯一的選擇是successfailure處理程序在函數完成時更新HTML頁面,這似乎不是我想要的,因爲它不是'實時'消息。

回答

1

您仍然可以在工作表和文檔中使用ui.alert(),並且工作表也有toast()

要將消息保存在使用HTML服務創建的邊欄或對話框中,可以在客戶端上設置單獨的輪詢器函數,以便每隔一段時間從服務器檢索消息。您的長時間運行的功能可以通過服務器上的函數調用來排隊消息,該消息將在輪詢器的下一個週期中被拾取,並顯示給用戶。

有關輪詢器的示例,請參閱How to poll a Google Doc from an add-on

+0

有趣的建議。不幸的是,它增加了一層複雜性,以前我曾經使用過的相對簡單的方式,但它看起來好像它會起作用。雖然您在上面列出的示例中提到了文檔和表格綁定的腳本,但是我沒有看到任何理由,這不適用於獨立腳本,對嗎? – HDCerberus