2015-04-15 119 views
0

我正在研究一個門戶網站,其中包含一組可從主屏幕訪問的窗體,然後是基於用戶對所述窗體提交報表的頁面。設置一段時間後自動刷新Google Apps腳本

表單寫入單個Google電子表格,其中數據被操縱並且「狀態」被拋出。

我已將此狀態和其他數據放到我的報告屏幕上,並且一直保持靜態狀態,直到用戶實際刷新頁面爲止。

我想讓它自動刷新,例如每60秒鐘刷新一次,所以任何更改都會反映給用戶。

我花了時間研究,並設法得到兩個選項,似乎在工作的開始階段,但我無法解決如何解決我仍然存在的問題。

一個選擇是做元刷新。代碼爲:

<meta http-equiv="refresh" content="60;url=HereIsTheURL"/> 

此版本的工作,但只在第一個例子。即頁面第一次成功重新加載,但當第二個實例出現時,我所得到的只是一個空白的白色屏幕。

我一直在使用的第二個選擇是JS。代碼是:

<script type="text/javascript"> 
setTimeout(function() { 
    location.reload(); 
}, 60000); 
</script> 

但是,這只是簡單地返回一個空白的白屏每次。

更多信息:

我在Apps腳本中使用HTMLService。
顯示日誌/報告的頁面有完整的腳本URL +「?page = pagename」

有沒有人有任何想法如何更改代碼,以便頁面每次都能正確刷新?

更新下面的HTML內容:

<div id="content" > 
    <h1>Change Log:</h1> 
    <br> 
    <br> 
    <div id="users-contain" class="ui-widget"> 
<table id = "user" style="width:100%" class="ui-widget ui-widget-content"> 
    <thead> 
       <tr class="ui-widget-header "> 
       <th>Change Request Date</th> 
       <th>Change Request</th> 
       <th>Status</th> 
       <th>Completed By</th> 
       <th>Date Completed</th> 
       </tr> 

</thead> 
     <tbody> 
     <tr> 

     </tr> 
     </tbody> 
     </table> 
</div> 
+0

您是否嘗試過以下緩存設置並結合location.reload(true)? http://stackoverflow.com/questions/15633374/is-there-any-way-to-use-javascript-to-do-a-ctrl-f5-refresh –

+0

setTimeout在60秒執行一次代碼,而使用setInterval將執行每60秒執行一次你的代碼 – AshBringer

+0

泰德 - 我剛剛實現了這一點,並將setTimeout更改爲setInterval,我的問題仍然存在。我所得到的只是一個空白的白色屏幕 – kjexley

回答

0

AFAIK,你不能使用,因爲重定向安全問題(野生猜測)的location.reload,但你可以重置整個頁面,在JavaScript的一個定時器, HTML和更新頁面,如果您想與我們分享您的HTML代碼,我們可以幫助您瞭解如何更新它們。

+0

謝謝,我認爲它可能與安全有關,因爲它在應用程序腳本中,而不是其他控制檯。有關信息,我已將HTML添加到問題 – kjexley

+2

我需要查看JavaScript函數,但可能只需刪除添加的元素並重新運行函數,非常簡單。 – Kriggs

相關問題