Google apps script 阻止Google应用程序脚本并行执行
我有一个谷歌应用程序脚本,它是通过点击工作表上的浮动图像来执行的 如何防止人们在脚本第一次执行完成之前再次运行脚本 似乎可以通过单击图像多次执行脚本,并且后续执行与以前的执行冲突,并导致错误结果Google apps script 阻止Google应用程序脚本并行执行,google-apps-script,Google Apps Script,我有一个谷歌应用程序脚本,它是通过点击工作表上的浮动图像来执行的 如何防止人们在脚本第一次执行完成之前再次运行脚本 似乎可以通过单击图像多次执行脚本,并且后续执行与以前的执行冲突,并导致错误结果 我本来打算在脚本运行时暂时解除脚本与浮动映像的关联,然后在退出脚本之前还原它,但我似乎找不到操作浮动映像属性的方法。对于客户端处理,您可以为变量赋值以标识函数的状态 index.html <!DOCTYPE html> <html> <body> <
我本来打算在脚本运行时暂时解除脚本与浮动映像的关联,然后在退出脚本之前还原它,但我似乎找不到操作浮动映像属性的方法。对于客户端处理,您可以为变量赋值以标识函数的状态 index.html
<!DOCTYPE html>
<html>
<body>
<img src="http://cdn.soulsplay.com/assets//listing/css/comments/submit-button-2.png" onclick="invokeSubmit();">
</body>
<script>
var image_clicked = 0;
function invokeSubmit(){
image_clicked ++;
if(image_clicked == 1){
alert("Processing");
google.script.run.withSuccessHandler(function(){
image_clicked = 0;
alert("done");
}).sleep_func();
}
}
</script>
</html>
您还可以使用防止脚本并发访问
如果使用对话框或侧边栏上的按钮,可以在javascript中禁用该按钮,然后在脚本完成后使用回调函数再次启用该按钮。退房我不认为你可以用图像作为电子表格上的按钮来实现这一点。完美!!!最后一个建议,LockService,正是我所需要的。非常感谢
function doGet() {
var output = HtmlService.createTemplateFromFile('index').evaluate();
output.setSandboxMode(HtmlService.SandboxMode.IFRAME);
output.setTitle('App Script');
return output;
}
function sleep_func(){
Utilities.sleep(15000);
return;
}
function test_func(){
var lock = LockService.getScriptLock();
lock.waitLock(15000);
//Some operations
lock.releaseLock();
}