Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google应用程序脚本中的PropertiesServices出现意外行为_Javascript_Google Apps Script_Global - Fatal编程技术网

Javascript Google应用程序脚本中的PropertiesServices出现意外行为

Javascript Google应用程序脚本中的PropertiesServices出现意外行为,javascript,google-apps-script,global,Javascript,Google Apps Script,Global,我正在尝试实现一个GAS脚本,它有客户端和服务器端。我希望在客户端读取来自服务器的“进度”信息。由于GAS中的全局变量只是上下文全局变量(每次调用都会重置),所以有人告诉我使用“属性”。如果我理解正确,服务器端设置的“属性”不应该在不同的主机函数调用之间保留其值吗?这并没有发生 这是我的剧本: 客户端: 这是一段非常简单的代码。客户端将创建2个按钮和一个文本字段。它应该从服务器端脚本中获取所需的值,并将其显示在文本框中 先按按钮1,然后按按钮2 预期产出: 60 六十 实际产量: 60 五十 不

我正在尝试实现一个GAS脚本,它有客户端和服务器端。我希望在客户端读取来自服务器的“进度”信息。由于GAS中的全局变量只是上下文全局变量(每次调用都会重置),所以有人告诉我使用“属性”。如果我理解正确,服务器端设置的“属性”不应该在不同的主机函数调用之间保留其值吗?这并没有发生

这是我的剧本:

客户端: 这是一段非常简单的代码。客户端将创建2个按钮和一个文本字段。它应该从服务器端脚本中获取所需的值,并将其显示在文本框中

先按按钮1,然后按按钮2

预期产出: 60 六十

实际产量: 60 五十

不知何故,当按下按钮2时,它不会返回当按下按钮1时分配给属性的“60”值。我不知道为什么

(注意:属性声明为“script”或“user”并不重要。两者都给出相同的结果。)

非常感谢您的帮助。

好的,我想出来了:)服务器端代码中的第3行:

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);