Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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 为什么从谷歌电子表格中使用UrlFetchApp调用我的谷歌应用程序脚本需要这么长时间才能运行?_Google Apps Script_Google Sheets_Urlfetch_Google Sheets Custom Function - Fatal编程技术网

Google apps script 为什么从谷歌电子表格中使用UrlFetchApp调用我的谷歌应用程序脚本需要这么长时间才能运行?

Google apps script 为什么从谷歌电子表格中使用UrlFetchApp调用我的谷歌应用程序脚本需要这么长时间才能运行?,google-apps-script,google-sheets,urlfetch,google-sheets-custom-function,Google Apps Script,Google Sheets,Urlfetch,Google Sheets Custom Function,我使用一个自定义函数来保持修改工作表的行数,因为来自另一个工作表的数据发生更改。要做到这一点,我必须将进行修改的脚本放入一个独立的GoogleApps脚本中,因为直接从电子表格调用的自定义函数没有写入权限。然后,我从自定义函数调用UrlFetchApp.fetch 一切都如我所期望的那样工作,但问题是出于某种未知的原因,脚本运行时好像修改电子表格的每个表达式在执行前等待大约10秒。当我使用UrlFetchApp.fetch中使用的相同URL直接从浏览器调用它时,更改会立即发生 假设我有以下几点:

我使用一个自定义函数来保持修改工作表的行数,因为来自另一个工作表的数据发生更改。要做到这一点,我必须将进行修改的脚本放入一个独立的GoogleApps脚本中,因为直接从电子表格调用的自定义函数没有写入权限。然后,我从自定义函数调用UrlFetchApp.fetch

一切都如我所期望的那样工作,但问题是出于某种未知的原因,脚本运行时好像修改电子表格的每个表达式在执行前等待大约10秒。当我使用UrlFetchApp.fetch中使用的相同URL直接从浏览器调用它时,更改会立即发生

假设我有以下几点:

var sheet = SpreadsheetApp.openById(...).getSheetByName(...);
sheet.getRange(1, 1).setValue(1);
sheet.getRange(2, 1).setValue(2);

如果从浏览器运行脚本,脚本将立即完成。然而,当从我的电子表格中调用时,在每个
setValue
表达式运行之前,它似乎要等待大约10到15秒。你知道这是为什么吗?我怎样才能让它运行得更快?

也许你应该“安装”一个“编辑时”触发器,并以这种方式运行代码。我认为你不需要使用这种策略的独立Web应用程序。但我不确定触发该过程的初始事件是什么?@SandyGood我会这样做,但我需要它在匿名用户使用电子表格时运行。这就是为什么我使用公式。我想我能做的是,如果真的发生这种情况,在源电子表格上设置定时触发器或onEdit触发器。