google side bar - js 服务器端全局变量在 side bar 调用之间共享
google side bar - are js server side global variables shared between side bar calles
考虑边栏简单的服务器端脚本。
const publicArr = [];
function doWait2(ms){
var start = new Date().getTime();
var end = start;
while(end < start + ms) {
end = new Date().getTime();
}
}
function getfirstCall(){
publicArr.push("Item1");
doWait2(10000);
return publicArr;
}
function getsecondCall(){
publicArr.push("Item2");
return publicArr;
}
当依次调用getfirstCall
和getsecondCall
时,每个函数returns一个单项数组(分别为Item1 / Item2)。 getfirstCall
到 publicArr
所做的更改不会在客户端执行 getsecondCall
.
时反映出来
请注意,getfirstCall
在返回之前等待 10 秒,允许服务器同时处理 getsecondCall
。不确定它是否重要。
这是保证吗?
每个客户端调用都有自己的 public 变量实例?
我猜这是 web 开发的基础,而不仅仅是边栏
在 Apps 脚本中,全局变量在脚本执行中不是唯一的,如果您担心并发执行,您应该考虑使用 PropertiesService to store your publicArr
as a script property, retrievable by all users. And perhaps LockService。
请参阅这些答案以获取指导:
How to define global variable in Google Apps Script
考虑边栏简单的服务器端脚本。
const publicArr = [];
function doWait2(ms){
var start = new Date().getTime();
var end = start;
while(end < start + ms) {
end = new Date().getTime();
}
}
function getfirstCall(){
publicArr.push("Item1");
doWait2(10000);
return publicArr;
}
function getsecondCall(){
publicArr.push("Item2");
return publicArr;
}
当依次调用getfirstCall
和getsecondCall
时,每个函数returns一个单项数组(分别为Item1 / Item2)。 getfirstCall
到 publicArr
所做的更改不会在客户端执行 getsecondCall
.
请注意,getfirstCall
在返回之前等待 10 秒,允许服务器同时处理 getsecondCall
。不确定它是否重要。
这是保证吗? 每个客户端调用都有自己的 public 变量实例?
我猜这是 web 开发的基础,而不仅仅是边栏
在 Apps 脚本中,全局变量在脚本执行中不是唯一的,如果您担心并发执行,您应该考虑使用 PropertiesService to store your publicArr
as a script property, retrievable by all users. And perhaps LockService。
请参阅这些答案以获取指导:
How to define global variable in Google Apps Script