Performance 多个OnEdit函数的最佳实践
问题Performance 多个OnEdit函数的最佳实践,performance,google-apps-script,optimization,google-sheets,triggers,Performance,Google Apps Script,Optimization,Google Sheets,Triggers,问题 我有6个OnEdit函数,它们单独工作时按预期,但在一起时却不能按预期工作。我的意思是有些根本就不会触发 脚本的属性 它们有不同的名称-函数onEdit(e){code},函数onEdit1(e1){code},函数onEdit2(e2){code},函数onEdit3(e3){code},函数onEdit4(e4){code},函数onEdit5(e5){code} 它们都在同一个.gs选项卡中 其中一些变量相同。例如,OnEdit具有var range=e.range和OnEdi
- 我有6个OnEdit函数,它们单独工作时按预期,但在一起时却不能按预期工作。我的意思是有些根本就不会触发
- 它们有不同的名称-
函数onEdit(e){code},函数onEdit1(e1){code},函数onEdit2(e2){code},函数onEdit3(e3){code},函数onEdit4(e4){code},函数onEdit5(e5){code}
- 它们都在同一个.gs选项卡中
- 其中一些变量相同。例如,OnEdit具有
var range=e.range代码>和OnEdit5具有
var范围=e5.range代码>
- 我相信您可以在同一个.gs选项卡中运行多个OneEdit函数。这是正确的吗?或者我需要创建新的.gs选项卡吗李>
- 我认为我的onEdit函数应该以不同的方式命名,这样它们才能正确调用。这是正确的,还是我应该去掉不同的函数,把它们放到一个大函数中?(我想这会导致执行速度变慢,并且出现更多无法隔离错误代码的情况)
- 我相信在每个函数中创建的变量都是特定于该函数的。这是真的吗?还是它们相互影响
- 只有一个函数具有相同的名称。如果有两个,后者将覆盖前者。就好像前者从未存在过
- 名为
的函数在(您猜对了!)编辑时自动触发onEdit
- 其他名称没有简单的触发器,例如
或onEdit1
onEdit2
- 简单触发器的执行时间限制为30秒
- 因此,在单个
文件中,甚至在单个项目中,只能有一个名为code.gs
并成功触发的函数onEdit
- 如果创建多个项目,
将在每个项目中异步触发。但可以创建的项目数量是有限制的,其他配额也将适用onEdit
- 或者,您可以使用已安装的触发器:它没有30秒的限制。您还可以为函数使用任何名称
- 优化函数的最佳方法是,除非绝对必要,否则切勿触摸电子表格。例如,
脚本中的各种值比多次在多个范围内重复调用排序
要好。工作表和脚本之间的交互越少越好。一个高度优化的脚本只需要调用两个电子表格:一个用于获取数据,另一个用于设置数据.sort
- 优化对工作表的调用数量后,可以优化脚本本身:控制逻辑,以便每次编辑只执行必要的操作量。例如,如果编辑在A1中(A1、B1是复选框,如果单击则分别清除A2:A10、B2:B10),则应检查是否单击了A1,如果单击,则清除范围并退出,不要再次检查B1。脚本优化至少需要具备JavaScript对象的基本知识。然而,这并不如减少通话次数有效,因为这是任何应用程序脚本中最慢的部分