当电子表格更改时,有什么方法可以更新 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/