自动刷新Google Apps Scripts webapp UI?

时间:2012-11-30 03:46:28

标签: javascript web-applications google-apps-script

我使用Google Apps Scripts创建了一个简单的Web应用程序。 UI只显示在FusionTable中连续更新的几个数字。自定义数据采集系统在我家本地运行,并每分钟向FusionTable发送新结果。我希望每隔一分钟更新我的GAS webapp上的UI,以便显示新的数字。

通过运行时间驱动程序触发器来定期从FusionTable中获取数据并将数字存储在我脚本自己的ScriptDb中,我解决了一半的问题。所以这可以很好地将我的数据放在正确的邻域中。但我仍然没有看到如何使用新数据定期更新UI中的文本框。

到目前为止,我已在UI上手动配置了一个刷新按钮,用户可以单击该按钮以使用存储在ScriptDb中的最新数字更新显示。我很亲密,我可以品尝它!

有人有想法吗?

3 个答案:

答案 0 :(得分:5)

您可以使用UiInstance.addTimer方法进行自动刷新,但未记录,也可能不受支持。

其语法为UiInstance.addTimer( ServerHandler , interval);

请参阅下面的示例代码。

function doGet(e) {

  var app = UiApp.createApplication();

  

  app.add(app.createLabel(new Date()).setId("label"));

  

  app.addTimer(app.createServerHandler("update") , 1000);

  

  return app;

}



function update(e){

  var app = UiApp.getActiveApplication();

  app.getElementById("label").setText(new Date());

  app.addTimer(app.createServerHandler("update") , 1000);


  return app;

}

可以找到示例应用here

答案 1 :(得分:2)

使用电子表格进行显示。他们自动更新。

Stackoverflow,这不是一个感谢而是解决方案,但对你而言:

  1. 制作电子表格
  2. 添加发布服务
  3. 有服务更新电子表格
  4. 观看电子表格

答案 2 :(得分:1)

不幸的是,Google Apps脚本还没有定时器功能来频繁更新UI。但是,有一段时间我写了一个黑客,可以在旧的Apps脚本论坛中找到 http://productforums.google.com/forum/#!topic/apps-script/2pqhh_eTIvQ

您可以在stackoverflow中进行搜索,但基本前提保持不变,即您可以利用以下事实:您可以以编程方式更改复选框的值并触发其更改处理程序。