Google应用脚本HTML服务自动更新

时间:2013-11-06 14:39:24

标签: google-apps-script

我正在开发一个使用谷歌应用脚​​本和电子表格作为存储的网络应用。

基本上是一个HTML,显示了不同标签的一些表格。

在我的应用中,用户可以添加新任务,编辑任务并将任务标记为已完成。 由于有许多用户使用该应用程序,因此每个客户端上显示的数据都会过快地过时。

我想尽快更新应用程序的新记录和对现有记录的更改。

我想在记录单元格中的最后一个编辑选项卡+行并且每分钟从服务器中提取该数据,但是,如果在那一分钟内添加/编辑了许多条目会怎么样?

我认为websocket是不可能的。还有其他想法吗?

我正在使用Jquery客户端。 提前谢谢。

3 个答案:

答案 0 :(得分:0)

除了民意测验之外别无他法。您不能从HTML服务获得套接字或回调。您可以经常轮询,但这可能会让您失去配额。 如果您真的想要轮询并避免配额,您可以在已发布的公共电子表格上记录最后一次编辑,并使用客户端的ajax读取它,但是已发布的电子表格只会每分钟更新一次。

答案 1 :(得分:0)

为帮助避免冲突,请为每项任务指定唯一ID。像创作时间+随机字符串。这样您就可以在电子表格中查找。另外,我认为Lock Service可以暂时阻止并发编辑以避免冲突: https://developers.google.com/apps-script/reference/lock/

要检查更新,请尝试轮询电子表格的上次编辑时间。如果它大于先前的轮询,则获取更新。 https://developers.google.com/apps-script/reference/drive/file#getLastUpdated()

答案 2 :(得分:0)

您可以尝试这样的事情:

var lock = LockService.getPublicLock();
var success = lock.tryLock(10000);
if (success) {
// check your spreadsheet for lastUpdated or PropertiesService.getScriptProperties();
}
} else {
// do something else (try it again or error msg)
}
lock.releaseLock(); 

我发现它在我的应用上效果很好,我有大约1000个用户。