'on form submit' 脚本的运行速度能否比表单写入电子表格的速度快?
Can an 'on form submit' script run faster than the form writes to spreadsheet?
我有一个表单可以将数据发送到电子表格。
我在表单上附加了一个脚本,用于在表单提交时创建日历条目、确认文档等。
有 3 次(大约 100 次表单提交和一堆手动脚本运行)脚本已经运行,但不是从新提交的表单中提取数据,而是从之前的表单提交中提取的数据.重新检查代码后,我唯一能想到的是 'read data from last row of spreadsheet' 命令在电子表格具有 'received' 新表单数据之前执行。
这可能吗?
(我假设表单提交脚本在表单完全提交之前不会启动)
有没有办法避免这种打嗝? (我打算在脚本上休眠 1 秒,以便为电子表格提供一些额外时间以防万一)
谢谢
这肯定会发生,读取和写入表格需要时间,并且这两个动作可能以不同的速度发生。
与其使用 "getLastRow()" 提取提交的数据,不如使用触发器传递给您的函数的事件数据:
function onFormSubmit(e){ //e is an event object passed to the function when it is triggered.
Logger.log(e.response); //e.response is a FormResponse object containing the data submitted by the user.
Logger.log(e.response.getItemResponses()); //getItemResponses() returns all the responses in an Array, similar to what is returned by getLastRow()
}
参见:
https://developers.google.com/apps-script/guides/triggers/events#google_forms_events
https://developers.google.com/apps-script/reference/forms/form-response
我有一个表单可以将数据发送到电子表格。 我在表单上附加了一个脚本,用于在表单提交时创建日历条目、确认文档等。
有 3 次(大约 100 次表单提交和一堆手动脚本运行)脚本已经运行,但不是从新提交的表单中提取数据,而是从之前的表单提交中提取的数据.重新检查代码后,我唯一能想到的是 'read data from last row of spreadsheet' 命令在电子表格具有 'received' 新表单数据之前执行。
这可能吗? (我假设表单提交脚本在表单完全提交之前不会启动)
有没有办法避免这种打嗝? (我打算在脚本上休眠 1 秒,以便为电子表格提供一些额外时间以防万一)
谢谢
这肯定会发生,读取和写入表格需要时间,并且这两个动作可能以不同的速度发生。
与其使用 "getLastRow()" 提取提交的数据,不如使用触发器传递给您的函数的事件数据:
function onFormSubmit(e){ //e is an event object passed to the function when it is triggered.
Logger.log(e.response); //e.response is a FormResponse object containing the data submitted by the user.
Logger.log(e.response.getItemResponses()); //getItemResponses() returns all the responses in an Array, similar to what is returned by getLastRow()
}
参见: https://developers.google.com/apps-script/guides/triggers/events#google_forms_events https://developers.google.com/apps-script/reference/forms/form-response