2015-04-15 122 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

相关问题