【发布时间】:2025-11-23 18:05:02
【问题描述】:
我阅读了(未记录的)addTmer 并希望使用它来更新 UI。
Auto refresh Google Apps Scripts webapp UI? 的示例运行良好
// This code works
function doGet(e)
{
var app = UiApp.createApplication().setTitle('Test addTimer - createApplication in doget');
var appLocal = app;
var handler = appLocal.createServerHandler("update");
appLocal.addTimer(handler , 4000);
var label = appLocal.createLabel(new Date()).setId("label");
appLocal.add(label);
return appLocal;
}
function update(e)
{
var appLocal = UiApp.getActiveApplication();
// var appLocal = app;
appLocal.getElementById("label").setText(new Date());
var handler = appLocal.createServerHandler("update");
appLocal.addTimer(handler , 1000);
return appLocal;
}
但是,如果我将 createApplication 从 doGet() 移出到全局变量中,则会在运行时发生“意外错误”。 如果没有 addTimer,可以将 createApplication 从 doget() 移到全局范围内。
// This code will crash at runtime
var app = UiApp.createApplication().setTitle('Test addTimer , createApplication outside doGet');
function doGet(e)
{
var appLocal = app;
var handler = appLocal.createServerHandler("update");
appLocal.addTimer(handler , 4000);
var label = appLocal.createLabel(new Date()).setId("label");
appLocal.add(label);
return appLocal;
}
function update(e)
{
var appLocal = UiApp.getActiveApplication();
// var appLocal = app;
appLocal.getElementById("label").setText(new Date());
var handler = appLocal.createServerHandler("update");
appLocal.addTimer(handler , 1000);
return appLocal;
}
正如我所看到的全球使用
var app = createApplication();
我想更多的人也想使用 addTimer,我在这里发布我的经验。
也许有人可以解释为什么这是一个问题。
【问题讨论】: