DocumentApp:需要很长时间才能清除当前文档(60+秒)?

时间:2016-12-25 17:55:31

标签: google-apps-script

我有33页的Google文档。 我需要清除文档内容并用其他内容替换它。

我使用的代码是:

DocumentApp.getActiveDocument().getBody().clear();

当我运行这行代码时,代码完成需要几秒钟。到目前为止一切都很好。

然而,文档屏幕冻结,刷新屏幕需要60秒。大约30秒后,Chrome浏览器会要求我等待或终止浏览器标签(我选择等待)。

Chrome任务管理器显示静止312 MB内存正在使用中。当运行上述命令时,CPU跳转到107%并保持在那里,内存增长到970 MB。使用Chrome v56,Safari的行为类型相同。

当我按下(Google文档)撤消按钮时,只需要大约一秒钟就可以恢复所有文本。

清空当前文档的推荐方法是什么?

更新:它似乎与格式化有关。该文档是从Word文档中复制粘贴的,包括一些格式(字体,颜色,粗体)。

  • 测试1 :在Google文档中粘贴为纯文字(编辑>粘贴,无需格式化)。运行clear()命令大约需要一秒钟。
  • 测试2 :定期复制粘贴(此帖子的原始测试),保留格式。运行clear()命令需要60多秒。
  • 测试3 :定期复制粘贴,然后使用DocumentApp.getActiveDocument().getBody().setAttributes将粗体/斜体/字体/大小/颜色设置为默认值。这种方式看起来类似于纯文本版本。大约需要2秒钟。然后运行clear()命令,这仍然需要60多秒。
  • 测试4 :定期复制粘贴。然后是Cmd-A和删除,需要5-6秒。

1 个答案:

答案 0 :(得分:0)

尝试使用替代方法。

var myDoc = DocumentApp.getActiveDocument().getBody();
myDoc.editAsText().deleteText(1, myDoc.getText().length-1);