Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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
Google apps script 应用程序脚本:防止多次触发处理程序?_Google Apps Script - Fatal编程技术网

Google apps script 应用程序脚本:防止多次触发处理程序?

Google apps script 应用程序脚本:防止多次触发处理程序?,google-apps-script,Google Apps Script,我在表单上看到多个提交,可能是因为有人双击了提交按钮。有没有一个好的方法来防止这种气体?我想我可以通过JSON设置一个全局变量,并使用它来确定是否执行处理程序,但它似乎有点笨拙 谢谢。创建一个客户端处理程序,在执行其余代码之前禁用“提交”按钮 您可以在任何需要添加任何类型的服务器处理程序的地方添加客户机处理程序,并且它完全在客户机上工作,而无需任何服务器往返 请参见下面的Serge insas评论 创建一个客户端处理程序,在执行其余代码之前禁用“提交”按钮 您可以在任何需要添加任何类型的服务器处

我在表单上看到多个提交,可能是因为有人双击了提交按钮。有没有一个好的方法来防止这种气体?我想我可以通过JSON设置一个全局变量,并使用它来确定是否执行处理程序,但它似乎有点笨拙


谢谢。

创建一个客户端处理程序,在执行其余代码之前禁用“提交”按钮

您可以在任何需要添加任何类型的服务器处理程序的地方添加客户机处理程序,并且它完全在客户机上工作,而无需任何服务器往返


请参见下面的Serge insas评论

创建一个客户端处理程序,在执行其余代码之前禁用“提交”按钮

您可以在任何需要添加任何类型的服务器处理程序的地方添加客户机处理程序,并且它完全在客户机上工作,而无需任何服务器往返


请参见下面的Serge insas评论

客户端处理程序?那很有趣。就像UI页面上的
var handler=app.createClientHandler().forEventSource().setEnabled(false)
示例一样?这可能必须在服务器处理程序中,才能重新启用它?这样的话,是不是太晚了,没有任何用处?我不明白。对于要禁用按钮的客户机处理程序,它必须运行以响应按钮单击。在这种情况下,
disable
调用不能在服务器处理程序中发布,但必须在
doGet
中发布。如果这是正确的,那么客户端处理程序如何安排服务器处理程序代码的执行?或者客户端处理程序保证在服务器处理程序之前运行?以此类推……客户端处理程序将与服务器处理程序一起触发,禁用该按钮将防止双击,但不会干扰当前服务器处理程序的执行。它们同时触发,但独立运行。如果出于某种原因需要重新启用按钮,您可以在serverhandler末尾执行(最终增加延迟),或者使用另一个专门设计的按钮“重新提交”表单。(最后注意:两个处理程序都必须在主doGet函数中定义,因为在单击按钮之前它们都必须存在)客户端处理程序?那很有趣。就像UI页面上的
var handler=app.createClientHandler().forEventSource().setEnabled(false)
示例一样?这可能必须在服务器处理程序中,才能重新启用它?这样的话,是不是太晚了,没有任何用处?我不明白。对于要禁用按钮的客户机处理程序,它必须运行以响应按钮单击。在这种情况下,
disable
调用不能在服务器处理程序中发布,但必须在
doGet
中发布。如果这是正确的,那么客户端处理程序如何安排服务器处理程序代码的执行?或者客户端处理程序保证在服务器处理程序之前运行?以此类推……客户端处理程序将与服务器处理程序一起触发,禁用该按钮将防止双击,但不会干扰当前服务器处理程序的执行。它们同时触发,但独立运行。如果出于某种原因需要重新启用按钮,您可以在serverhandler末尾执行(最终增加延迟),或者使用另一个专门设计的按钮“重新提交”表单。(最后注意:两个处理程序都必须在主doGet函数中定义,因为它们都必须在单击按钮之前存在)