Google apps脚本:如何在不同的函数调用之间在电子表格中持久化数据
Google apps script: how to persist data in spreadsheet between different function calls?
在使用脚本编辑器的Google电子表格中,我进行函数调用,但我不太确定存储持久数据(我将继续使用的数据)的最佳方法是使用全局变量(使用对象,数组,字符串),还是有更好的存储数据的方法。
我不想使用单元格,这可能是另一种方式。
另一个问题,是否有可能在这个环境中创建(伪)类?最好的方法?
ScriptProperties
和ScriptDB
均已弃用
PropertiesService
,它被分成三个部分来缩小作用域:- Document -如果脚本作为附加组件发布,则获取当前文档中所有用户可以访问的属性存储。
- Script -获取一个所有用户都可以访问的属性存储,但只能在这个脚本中。
- User -获取只有当前用户才能访问的属性存储,并且只能在此脚本中访问。
var properties = PropertiesService.getScriptProperties();
function saveValue(lastDate) {
properties.setProperty('lastCalled', lastDate);
}
function getValue() {
return properties.getProperty('lastCalled');
}
脚本执行环境是无状态的,因此您不能访问以前运行的本地变量,但是您可以将getScriptProperties()
存储在一个本地变量中,因为它将在每次返回服务器时重新运行,因此可以在任何一种方法中调用它。
如果您需要在更临时的基础上存储一些东西,您可以使用CacheService
API
可以使用类ScriptProperties来存储持久数据:
http://code.google.com/googleapps/appsscript/class_scriptproperties.html所有值都以字符串形式存储,并且在检索时必须使用like或parsInt或parseFloat转换回来。
JSON对象也可以用这种方式存储
我的经验是,每个检索或存储值的查询都需要很长的时间。至少,我会在安全的情况下尽可能多地缓存javascript代码中的信息。我的脚本总是一次执行,所以我不需要保留全局变量,因为我只需要传递检索到的数据数组,操作它们,最后将它们一次性存储回来。如果我需要跨脚本调用的持久性,并且我不关心在网页的末尾删除中间值,那么我将使用全局变量。显然,您必须考虑如果您的脚本在中间停止并且您还没有将值存储回Google会发生什么。
相关文章:
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 如何在Javascript函数调用中循环变量
- Javascript:应为赋值或函数调用,但实际看到的却是表达式
- 如何远程检查JavaScript应用程序的函数调用堆栈
- javascript函数调用不起作用
- 异步函数调用是否可以在两个同步语句之间完成
- jQuery递归函数调用和Javascript之间有区别吗;s setInterval
- 此函数调用之间有什么区别
- 如何在函数调用之间设置超时
- 在 JavaScript 中,构造函数和作为构造函数调用的返回对象的函数之间有什么区别
- 我的 javascript 变量在函数调用之间变得未定义
- 两种形式的自调用函数调用之间的区别是什么
- Google apps脚本:如何在不同的函数调用之间在电子表格中持久化数据
- 计算两个函数调用之间经过的时间
- jQuery-这些函数调用之间的区别
- UIWebView Javascript在函数调用之间保留变量值
- 在函数调用javascript之间保留变量值
- 如何在Node.js中清除函数调用之间的Windows 7控制台屏幕?
- 立即调用的函数表达式和相应的普通函数调用之间有区别吗?