为什么我们使用SpreadsheetApp.flush();?

Sow*_*ain 9 javascript google-sheets google-apps-script

我是一个完全的初学者.

我阅读了Google文档以获得解决方案.我搜索了相同的互联网.我也搜索了StackOverflow.

但.一切似乎都是技术性的

我理解的是,.Flush有助于在它们发生时执行这些功能而不将它们捆绑在一起.

我对吗?如果没有,外行人的意思是什么?请用一个简单的例子来表示.谢谢.

Ste*_*ard 14

当程序员flush()想要确保先前代码的输出和/或效果在继续之前写入电子表格时,他们将使用它们.如果不这样做flush(),那么可以通过使用一些内置缓存和操作捆绑来自动"优化"代码.一般情况下,你不需要使用flush(),直到您特别DO需要......如果是有道理的.

首先,你们是官方文件:

齐平()

应用所有待处理的电子表格更改.有时将电子表格操作捆绑在一起以提高性能,例如在对Range.getValue()进行多次调用时.但是,有时您可能希望确保立即进行所有挂起的更改,例如在脚本执行时向用户显示数据.

如何解释类似的类比:假设你在苹果树上用100个苹果计算苹果.

可以单独计算和记录每个苹果,如下所示:

1,2,3,4,5,6...等等.

这就像flush()在一个循环中做一个,因为你在每次count操作后都是字面意思.你将最终写入你的论文100次,让我们假设你用手写字比用眼睛计算要花费更长的时间.

一个"优化"过程(在这种情况下)将使用你的内存/缓存并在写下一个数字之前计算5个苹果,所以你要写

5,10,15,20...等等.

现在你最终会写你的论文20次(减少80%),尽管必须计算相同数量的苹果,你已经减少了你必须做的写作次数,所以你会看到一个激烈的表现通过减少运行时间获益.

这大致转化为Apps脚本操作的工作方式.与在所有计算中一样,内存中操作是最快的执行,读/写(也称为输入/输出或I/O)操作是最慢的(检查执行脚本以获得进一步的证明).这就是为什么你应该只flush()在特别需要在代码执行的特定点将数据写入电子表格时使用.

希望这可以帮助.