在Google apps脚本中,什么取代了Utilities.sleep()来防止双击
Within Google apps script, what replaces Utilities.sleep() to prevent double clicks?
我在Google Docs Script里写一个插件。从侧边栏,它将信息写入文档,而不是电子表格。根据连接速度的不同,Doc会在1秒到5秒之间更新信息。
我的问题是用户双击。我可以禁用这个按钮;然而,脚本完成的时间不到一秒,而Doc在1秒内更新。完成的脚本启用按钮。用户再次单击按钮,脚本第一次尝试写入信息。最终的结果是一个双条目。
我的解决思路是:1。等待或暂停;一个回调函数或3。锁。
问题:回调:我不知道我可以使用什么事件/输入来告诉脚本现在解锁按钮。我可以做一个无限循环,不断检查直到博士更新,但这似乎不是一个可靠的解决方案。洛克:没有什么事情可以简单地等待。它可以等待函数可用,但这不是问题。问题是脚本相对于文档更新速度太快了。
任何想法吗?
谢谢。
我想到了这个解决方案:
每次调用脚本时,将文档的当前文本与上次调用时传递给脚本的文本进行比较。
一些伪代码:
var previousText = "";
function addEntry() {
var body = DocumentApp.getActiveDocument().getBody();
var currentText = body.getText();
if (currentText === previousText) {
// Enable button here
return;
}
// Add entry to document AND currentText
// ...
// ...
previousText = currentText; // Save the text for future checks
// Enable button here
}
function onButtonClick(e) {
addEntry();
// Disable button here
}
我明白了。我没有意识到。withsucceshandler也等待Doc被更新。我假设它只等待. savessettings(设置)完成。现在在适当的时候使用SuccessHandler(enablesButton)来防止双击。
google.script.run.withFailureHandler(onFailure).withSuccessHandler(enableButton)
.saveSettings(settings);
相关文章:
- 使用类从一个标记中双击事件
- onclick函数需要双击,因为类分配延迟
- 了解双击代码标记
- jquery Onclick函数带有导致双击的回调排序函数
- 防止双击执行两次jQuery post请求
- JavaScript双击事件
- 选择“字符串”并使用SeleniumJava双击
- jQuery UI自动完成需要在iOS上双击
- 使用jquery在html中添加双击操作
- 双击泛光灯单击
- 如何在Firefox中禁用视频的单击和双击控件
- 双击可更改树标签
- svg.js/svg平移缩放-双击交互
- 在WordSmith jquery中,双击后什么决定了链接图标的位置
- 宣传单:双击时不要触发点击事件函数
- d3 中是否有点击和双击事件.js力定向图
- 当单选按钮的标签可单击时双击
- Draw2d.js:通过双击将可编辑标签添加到现有连接
- 模拟双击拖动结束 - jquery UI
- 在Google apps脚本中,什么取代了Utilities.sleep()来防止双击