Javascript Google应用程序脚本中的PropertiesServices出现意外行为
我正在尝试实现一个GAS脚本,它有客户端和服务器端。我希望在客户端读取来自服务器的“进度”信息。由于GAS中的全局变量只是上下文全局变量(每次调用都会重置),所以有人告诉我使用“属性”。如果我理解正确,服务器端设置的“属性”不应该在不同的主机函数调用之间保留其值吗?这并没有发生 这是我的剧本: 客户端: 这是一段非常简单的代码。客户端将创建2个按钮和一个文本字段。它应该从服务器端脚本中获取所需的值,并将其显示在文本框中 先按按钮1,然后按按钮2 预期产出: 60 六十 实际产量: 60 五十 不知何故,当按下按钮2时,它不会返回当按下按钮1时分配给属性的“60”值。我不知道为什么 (注意:属性声明为“script”或“user”并不重要。两者都给出相同的结果。) 非常感谢您的帮助。好的,我想出来了:)服务器端代码中的第3行:Javascript Google应用程序脚本中的PropertiesServices出现意外行为,javascript,google-apps-script,global,Javascript,Google Apps Script,Global,我正在尝试实现一个GAS脚本,它有客户端和服务器端。我希望在客户端读取来自服务器的“进度”信息。由于GAS中的全局变量只是上下文全局变量(每次调用都会重置),所以有人告诉我使用“属性”。如果我理解正确,服务器端设置的“属性”不应该在不同的主机函数调用之间保留其值吗?这并没有发生 这是我的剧本: 客户端: 这是一段非常简单的代码。客户端将创建2个按钮和一个文本字段。它应该从服务器端脚本中获取所需的值,并将其显示在文本框中 先按按钮1,然后按按钮2 预期产出: 60 六十 实际产量: 60 五十 不
userProperties.setProperty('SearchProgress', 50);
在每次调用脚本时执行(即:每次按下按钮1或2),因此将值重置为“50”。删除该全局初始化解决了该问题
var userProperties = PropertiesService.getScriptProperties();
//var userProperties = PropertiesService.getUserProperties()
userProperties.setProperty('SearchProgress', 50);
Logger.log('orig value = ' + userProperties.getProperty('SearchProgress'));
function doGet() {
var html = HtmlService.createHtmlOutputFromFile('test')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
return html;
}
function test(){
userProperties.setProperty('SearchProgress', 60);
var value = userProperties.getProperty('SearchProgress');
Logger.log('set value = ' + value);
return value;
}
function test2(){
//userProperties.setProperty('SearchProgress', 100);
var value = userProperties.getProperty('SearchProgress');
Logger.log('get value = ' + value);
return value;
}
userProperties.setProperty('SearchProgress', 50);