google-apps-script - 修改某些电子表格时实时更新html内容

标签 google-apps-script google-sheets

当电子表格更改时,有什么方法可以更新 div 内容?
我正在寻找的就像聊天和 webSockets 所以不需要更新和任何超时。

HTML文件:

<div id="thediv"></div>
google.script.run.withSuccessHandler(showChange).setChangefromSpreadsheet();
function showChange(e){
$('#thediv').html(e); //of course jQuery called
}

.sg 文件
function setChangefromSpreadsheet()
var sheet = SpreadsheetApp.openById('SpreadsheetId')
var data = sheet.getDataRange().getValues();
return data[0][0];
}

这将适用于超时
(在 html 文件上):
编辑为 setInterval:
setInterval(function(){google.script.run
        .withSuccessHandler(showChange).setChangefromSpreadsheet()}, 1000); //for example

有没有办法做到这一点而没有任何超时?

谢谢你的帮助

最佳答案

不幸的是,您正在寻找的东西是不可能的。您正在寻找某种“触发器”,每当发生电子表格编辑时,消息就会从 Google Apps 发送到您的网页。

从技术上讲,解决此问题的唯一方法是您要避免:每 x 秒检查一次您的网页。顺便说一句,您可能想使用 setInterval() ,不是 setTimeout()如果您希望它每 x 秒运行一次,而不仅仅是一次。

我明白为什么这看起来很难看。但是如果你处理得足够好,setInterval()真的没有任何问题。在这种情况下。如果它的运行频率低于每秒​​一次,那么您绝对不会遇到 Google 限制的任何限制(我认为您可以一次运行 6 次回拨给 Google,这对于您正在做的事情来说已经足够了)。

或者,根据您的应用程序,您还可以有一个“刷新”按钮供用户单击。不确定这是否适用于您的情况,但从技术上讲它也是一种选择。

关于google-apps-script - 修改某些电子表格时实时更新html内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39931309/

相关文章:

javascript - 获取e.parameter的特定部分

javascript - 如何从 Javascript/Google App 脚本中的另一个函数调用数组

javascript - 谷歌应用程序脚本中的 ReferenceError : "Drive" is not defined.(第 16 行,文件 "Code")

google-apps-script - 在 Google Apps 脚本中触发 importHTML

google-sheets - GSheets 论坛在领带分数上停滞不前

google-sheets - 如何在 Google 表格中设置群组

javascript - 将 HTML 插入到 Google 表格的弹出窗口或注释中

google-apps-script - Gmail 附加组件 onTriggerFunction 每封电子邮件仅运行一次,即使再次打开电子邮件也是如此

sql - 如何在 Google Bigquery 中按小时分组

google-apps-script - GAS 将变量传递给基于时间的触发器