google-apps-script - onChange 将在没有电子表格更改的情况下触发
问题描述
这是一个谷歌触发行为问题。(我认为)。想知道这是否正常。
我有(几张)具有脚本“更改”触发器的工作表。我注意到它们以某种方式在不更改工作表的情况下被触发,并且当工作表关闭时。仅使用 onChange 触发器在触发时增加单元格中的值,单元格值在白天增加,至少每 15 分钟触发一次,有时每分钟触发一次。
我尝试将工作表剥离,摆脱所有 IMPORTDATA 和其他外部数据引用,因此工作表中没有任何内容。很基础。
查看开发人员中心 - 我的执行,我看到它显示了这些执行。由于同一个基本工作表有几个相似的副本,因此一些工作表不会在几个小时内触发 on-change 然后开始快速显示触发器,而另一个工作表似乎在一段时间内表现自己。
就像我说的那样,工作表上没有什么东西,只有几个公式引用了同一张工作表上的单元格,仅此而已。
解决方案
我在我的一个电子表格上设置了一个测试,看看我是否能得到相同的结果:
function catchChanges(e) {
var ts=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "E MMM dd, yyyy hh:mm:ss");
var ss=SpreadsheetApp.openById('ssid');
var sh=ss.getSheetByName('Change Log');
sh.appendRow([ts,e.changeType,e.triggerUid,e.user,e.authMode]);
}
推荐阅读
- javascript - 从 GoJS 中的 base64 图像字符串获取图像高度和宽度
- vue.js - Vuex 异步方法忽略返回解析值
- angular - 如何在角度材料的日期选择器中以今天日期突出显示蓝色自动对焦?
- curl - 使用 curl Jenkinsfile 在 Jenkins Job 上创建
- batch-file - 如何从批处理文件输出向日志文件中的日志行添加时间戳?
- javascript - 使用 canvas.toDataURL() 将图表 js 下载到 png 在 IE 和 firefox 中不起作用
- mongodb - 性能 php 的 MongoDB 查找问题
- node.js - 在NodeJS中调用函数时如何处理UnhandledPromiseRejection
- angular - 在路由解析器中调用嵌套的 http 返回 Observable 而不是数据
- php - 使用 Laravel 通过 API 检索 Google 电子表格中的所有行