我使用Google Apps Scripts创建了一个简单的Web应用程序。 UI只显示在FusionTable中连续更新的几个数字。自定义数据采集系统在我家本地运行,并每分钟向FusionTable发送新结果。我希望每隔一分钟更新我的GAS webapp上的UI,以便显示新的数字。
通过运行时间驱动程序触发器来定期从FusionTable中获取数据并将数字存储在我脚本自己的ScriptDb中,我解决了一半的问题。所以这可以很好地将我的数据放在正确的邻域中。但我仍然没有看到如何使用新数据定期更新UI中的文本框。
到目前为止,我已在UI上手动配置了一个刷新按钮,用户可以单击该按钮以使用存储在ScriptDb中的最新数字更新显示。我很亲密,我可以品尝它!
有人有想法吗?
答案 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,这不是一个感谢而是解决方案,但对你而言:
答案 2 :(得分:1)
不幸的是,Google Apps脚本还没有定时器功能来频繁更新UI。但是,有一段时间我写了一个黑客,可以在旧的Apps脚本论坛中找到 http://productforums.google.com/forum/#!topic/apps-script/2pqhh_eTIvQ
您可以在stackoverflow中进行搜索,但基本前提保持不变,即您可以利用以下事实:您可以以编程方式更改复选框的值并触发其更改处理程序。