在 Google Apps 脚本中从服务器到客户端进行通信

2023-11-26

我正在尝试编写一个具有客户端和服务器端组件的 Google Apps 脚本。客户端组件显示进度条。客户端调用服务器端函数(异步调用),其进度必须显示在客户端进度栏中。现在,我想要的是能够根据服务器端功能的反馈来更新客户端进度条。这可能吗?

由于 JS 异步进行服务器端调用,因此我无法真正在客户端循环调用函数并更新进度条,从而产生了复杂性。

我当然可以将服务器端函数的执行分成多个步骤,从客户端一一调用,每次更新状态栏。但我想知道是否有更好的解决方案。有没有办法从服务器端调用客户端函数,并根据传递的参数更新进度条?或者有没有办法从服务器端访问客户端进度条对象并修改它?


我处理这个问题的方法是让一个中间人(现在向 Romain Vialard 提出这个想法)来处理进度:Firebase

HTML/客户端可以连接到您的 Firebase 帐户(它们是免费的!)并“监视”更改。

客户端代码可以在代码执行过程中更新数据库 - 这些更改会立即通过 Firebase 反馈到 HTML 页面。这样,您就可以更新进度条。

罗曼有一个小例子/描述here

我使用的代码:

//Connect to firebase
var fb = new Firebase("https://YOUR_DATABASE.firebaseio.com/");
//Grab the 'child' holding the progress info
var ref = fb.child('Progress');
//When the value changes
ref.on("value", function(data) {
  if (data.val()) {
    var perc = data.val() * 100;
    document.getElementById("load").innerHTML = "<div class='determinate' style='width:" + perc + "%\'></div>";
  }
});

在客户端,我使用Firebase 库更新进度:

var fb = FirebaseApp.getDatabaseByUrl("https://YOUR_DATABASE..firebaseio.com/");
var data = { "Progress": .25};
fb.updateData("/",data);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Google Apps 脚本中从服务器到客户端进行通信 的相关文章

  • JavaScript CSV 验证

    如何检查文本框中的逗号分隔值并在未找到时发出警报 如果有的话 里面应该有字符 比如A B C D function validate validate text box
  • React hooks 状态变量在重新渲染后未更新

    在下面的示例中 我有一个想要更新的元素 水果 数组 并使用更新后的数组执行其他操作 在本例中保存更新后的列表 我的理解是重新渲染状态将更新 但它不在这里 或者状态更新和我的操作之间存在延迟 In the addFruit功能我可以看到 Pe
  • 为什么 Jshint 在此 if 语句中说“变量已定义”?

    我有这个代码 if something is true var someVar true else var someVar false JsHint 表示在 else 语句部分 someVar 已被定义 这是为什么 我该如何解决 Thank
  • CryptoJS 使用密码加密 AES,但 PHP 解密需要密钥

    我在用CryptoJS https code google com p crypto js AES加密字符串 function doHash msg msg String msg var passphrase aggourakia var
  • 有没有办法在 React 中自动播放音频而不使用 onClick 事件?

    我在尝试在 componentDidMount 中播放音频时收到此错误 未捕获 承诺中 DOMException play 失败 因为用户没有先与文档交互 componentDidMount document getElementById
  • 由于 MIME 类型而导致资源被阻止?

    多年来我已经成功地包含动态创建的 javascript 文件 这是一个例子 https granadainfo com sups php locs 95 https granadainfo com sups php locs 95 正如你所
  • 个人 Tumblr 帖子上的 Javascript

    我知道您可以编辑在 tumblr 博客上呈现所有帖子博客主页的 html AngularJS 但是 有什么办法可以添加自定义到各个帖子 我想在逐个帖子的基础上做一些 javascript 的东西 但似乎无法找到可以编辑代码的位置 或者 如果
  • tomcat 7.0.50 java websocket 实现给出 404 错误

    我正在尝试使用 Java Websocket API 1 0 JSR 356 中指定的带注释端点在 tomcat 7 0 50 上实现 websocket 以下是我如何对其进行编码的简要步骤 1 使用 ServerEndpoint注解编写w
  • 如何用 JavaScript 修复图像透视变形和旋转?

    我有一些用手机拍摄的图像 有没有可以拉直纸张照片并将其压平的 JavaScript 库 例如 我想创建一个矩形图像 该图像没有任何失真 换句话说我想知道如何用 JavaScript 修复透视变形和旋转 例如 我发现下面的示例图像来自this
  • 如何防止输入文本中出现“后重音”

    我相信这是一个简单的问题 但在谷歌上搜索几个小时后我找不到任何答案 也许我无法在搜索中使用正确的单词 P 我有一个 javascript 方法 可以防止用户用数字以外的其他字符填充文本框 如下面的代码所示 它在 KeyDown 事件中使用
  • 对使用“new”创建的数组上“map”的行为感到困惑[重复]

    这个问题在这里已经有答案了 我对结果感到困惑mapping 使用创建的数组new function returnsFourteen return 14 var a new Array 4 gt undefined x 4 in Chrome
  • IE localStorage 事件失火

    在 Internet Explorer 9 和 10 中 localStorage 实现意外地触发事件 这里有很棒的线索 Chrome 的 localStorage 实现存在错误 https stackoverflow com questi
  • 使用 JavaScript 防止网页导航离开

    如何使用 JavaScript 防止网页导航离开 Using onunload允许您显示消息 但不会中断导航 因为为时已晚 然而 使用onbeforeunload将中断导航 window onbeforeunload function re
  • 在循环中调用 setTimeout 未按预期工作

    下面的 JavaScript 应该 在我看来 以 0 5 秒的间隔播放一系列音符 但它会将它们全部作为一个同时的和弦来演奏 知道如何修复它吗 function playRecording if notes length gt 0 for v
  • 检查浏览器空闲的替代方法

    我有一个简单的网络信息亭 在鼠标未使用 jQuery 移动 30 秒后显示用户操作提示 var i null body wrap mousemove function clearTimeout i overlay fadeOut i set
  • 如何使用 Javascript OAuth 库不暴露您的密钥?

    看着Twitter OAuth 库 https dev twitter com docs twitter libraries 我看到了这个注释 将 JavaScript 与 OAuth 结合使用时要小心 不要暴露你的钥匙 然后 看着jsOA
  • 如何使用 fetch() 和 WhatWG 流获取文件上传进度

    注意 我并不是在寻找任何替代方案 我知道这可以通过 XMLHttpRequest 来完成 我也不关心浏览器支持 我只想了解新的 即将推出的标准 我有一个File https developer mozilla org en US docs
  • highchart堆积柱每个类别的总数据

    我想获取每个类别的总数据 这point stackTotal只给出活动数据的总数 从我粘贴的代码示例中 我想知道每种水果的总消耗量 因此 即使我单击右上角图例上的乔的名字 这使得堆叠图表上的所有乔信息都处于非活动状态 我仍然可以知道约翰 简
  • 如何从 Cloud Functions for Firebase 文件夹读取证书文件

    我正在尝试读取 certs 文件夹下的文件 如下所示 functions certs idp public cert perm 这是我用来读取文件的代码 fs readFileSync path join dirname certs idp
  • Safari 扩展将消息发送到特定选项卡

    有没有办法从全局页面发送消息到特定选项卡 我目前正在做的是 在创建选项卡时 注入的脚本会创建一个唯一的 ID 并将包含该编号的消息发送到全局页面 并且全局页面会保存该编号 如果全局页面需要发送一些数据到一个tab 即 tab 3 然后全局页

随机推荐

  • Hibernate 验证“无法初始化 javax.el.E​​xpressionFactory”错误

    我正在尝试使用休眠验证 代码可以编译 但是启动时失败并出现错误 Exception in thread main javax validation ValidationException HV000183 Unable to initial
  • Typescript 中的 React-Redux 连接问题

    我正在尝试制作一个传递给react redux的组件connect功能 组件如下 interface ITestProps id number class TestComponent extends React Component
  • 右边框渐变

    我正在尝试制作右边框 ul 元素为线性渐变 我尝试过以下但没有成功 webkit border image webkit linear gradient top FE2EF7 4AC0F2 0 0 5px 我正在使用 Chrome 非常感谢
  • C - “char var[]”和“char *var”之间的区别?

    我期望以下两个向量在 RAM 中具有相同的表示形式 char a var XXX x00 char p var XXX 但奇怪的是 调用类型的库函数f char argument 如果我使用以下方式调用它 则会破坏正在运行的应用程序f p
  • 如何在 PostgreSQL 中使用 RETURNING 和 ON CONFLICT?

    我在 PostgreSQL 9 5 中有以下 UPSERT INSERT INTO chats user contact name VALUES 1 2 3 2 1 NULL ON CONFLICT user contact DO NOTH
  • WinRT XAML 中 GridView 项目组内的垂直滚动

    我正在使用 GridView 在 WinRT XAML 应用程序中显示不同组的项目 一切都运行良好 除了 ItemsPanelTemplate 使用环绕网格 当空间不足时它会垂直堆叠我的项目 所以 我尝试使用 StackPanel 如下所示
  • Python 日志记录模块发出错误的时区信息

    我遇到了 Python 2 7 日志记录模块的问题 我的系统是Ubuntu 14 04 64bit 我住在意大利 目前UTC 1 无夏令时 系统已正确配置 我想在当前时区发出日志行 并包含正确的时区偏移信息 考虑以下片段 usr bin e
  • 如何使用 sscanf 解析逗号分隔字符串中的字段,同时支持空字段?

    我有一个逗号分隔的字符串 其中可能包含空字段 例如 1 2 4 使用基本的 sscanf string val1 val2 val3 val4 我获得了空字段之前的所有值 以及从空字段开始的意外结果 当我从 sscanf 中删除空字段的表达
  • 如何找出谁运行了 TFS 销毁命令?

    我有理由相信 TFS Destroy 命令在我的服务器上运行 TFS 是否提供了一种方法来查明是谁以及何时完成的 TFS 将所有用户启动的命令记录在数据库中 14 天 尝试连接到您的Tfs Collection数据库并运行以下查询 SELE
  • 修复了与 css 转换结合使用时附件背景图像在 chrome 中闪烁/消失的问题

    我目前正在做一个视差网站主题 背景图像需要固定地附加到某些 div 和 section 以避免 jquery 沉迷于一切 问题是在转换完成时 任何动画项目下方标签的背景图像都会消失 仅在 Google Chrome 上 补救 这是一个非常常
  • 使用 Ant 从命令行编译 NetBeans 项目

    我有一个 NetBeans 项目 想从命令行编译 StackOverflow 上还有许多其他关于如何执行此操作的问题 但它们解释了如何使用以下命令来编译项目javac src java 我没有更改 NetBeans 项目的构建设置 默认情况
  • 将 Oracle 10g CLOB 与 Grails 2.0.1 结合使用

    我正在开发一个使用 Oracle 10g 和 Grails v2 0 1 的项目 我尝试在 Domain 类中使用 CLOB 数据类型作为文本输入字段 但它似乎不起作用 我的第一次尝试是基于我读到的内容关于 GORM 这里 其中说要使用ty
  • Python:fork、pipe 和 exec

    我想在Python应用程序中执行一个程序 它将在后台运行 但最终会来到前台 GUI 用于与其交互 但控制是通过标准输入和标准输出上的控制台提供的 我希望能够使用我的应用程序的 GUI 来控制它 所以我的第一个想法是 Fork 在父级中 du
  • 禁用帐户选择器 FirebaseUI React

    我正在努力解决一些看起来小菜一碟的事情 但我仍然无法找到解决方案 我正在使用reactjs和reactjs实现firebase身份验证过程firebaseUI 网络反应 一切都很好 除了当我尝试使用电子邮件 密码登录时 它需要我帐户选择器
  • numpy loadtxt 单行/行作为列表

    我有一个数据文件 只有一行 例如 1 2 2 1 3 2 我使用numpy版本1 3 0 loadtxt来加载它 a b c loadtxt data dat usecols 0 1 2 unpack True 输出是一个浮点数而不是像数组
  • jQuery:获取数据属性

    在我的 html 中我有一个span元素 span class field This is a span 我想得到data fullText属性 我尝试了这两种方法 但它们不起作用 都返回undefined field hover func
  • Skimr - 似乎无法生成直方图

    遇到了这个看似新的软件包 skimr 它看起来很漂亮 并且正在尝试它 看起来我缺少一些软件包安装 Skim 工作正常 只是它不打印直方图 它应该打印数字变量 我只是尝试文档中给出的示例 链接到 skimr 文档 https github c
  • 从python脚本访问django数据库

    我正在尝试从常规 Python 脚本中访问我的 Django 数据库 到目前为止我所做的是 import os import django from django db import models os environ setdefault
  • MailComposer didFinishWith 结果在 Swift 3.0 中不起作用

    我将我的应用程序转换为 swift 3 0 并遇到问题MailComposeController 当我调用函数时 func mailComposeController controller MFMailComposeViewControll
  • 在 Google Apps 脚本中从服务器到客户端进行通信

    我正在尝试编写一个具有客户端和服务器端组件的 Google Apps 脚本 客户端组件显示进度条 客户端调用服务器端函数 异步调用 其进度必须显示在客户端进度栏中 现在 我想要的是能够根据服务器端功能的反馈来更新客户端进度条 这可能吗 由于