Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表示函数或线程处理状态的加载百分比指示器_Javascript_Google Apps Script_Google Sheets_Google Sheets Api - Fatal编程技术网

Javascript 表示函数或线程处理状态的加载百分比指示器

Javascript 表示函数或线程处理状态的加载百分比指示器,javascript,google-apps-script,google-sheets,google-sheets-api,Javascript,Google Apps Script,Google Sheets,Google Sheets Api,问题:调用函数时,谷歌弹出窗口显示“运行脚本blahblah”,并显示“取消”、“取消”按钮。此绿色弹出窗口在一段时间后(何时?)被关闭,但许多单元格仍显示加载。。状态和值仍在填充,这意味着函数仍在运行 要求:需要关于某种指示器、旋转圈/加载ui的信息,或者只是一个简单的百分比指示已经完成了多少处理/函数调用,或者给用户一些指示剩余加载量或何时完成的信息。我意识到我是含糊不清的,因为我不确定这种过程监控功能是否存在。我把它想象成一个线程监视器,当所有处理完成时,它会变成绿色。但填充了0-100%

问题:调用函数时,谷歌弹出窗口显示“运行脚本blahblah”,并显示“取消”、“取消”按钮。此绿色弹出窗口在一段时间后(何时?)被关闭,但许多单元格仍显示加载。。状态和值仍在填充,这意味着函数仍在运行

要求:需要关于某种指示器、旋转圈/加载ui的信息,或者只是一个简单的百分比指示已经完成了多少处理/函数调用,或者给用户一些指示剩余加载量或何时完成的信息。我意识到我是含糊不清的,因为我不确定这种过程监控功能是否存在。我把它想象成一个线程监视器,当所有处理完成时,它会变成绿色。但填充了0-100%值的单元格也可以

上下文:当我单击一个按钮时,我的代码会在大量单元格上执行许多函数,这需要相当长的处理时间,即使进行了优化,在优化过程中,许多单元格的状态仍保持为“加载…”。执行所有功能并填充所有单元格后,用户才需要执行一些手动检查/其他活动。但是,除了手动滚动和搜索所有单元格中是否没有“加载”指示器之外,没有向用户提供所有处理已完成的指示,这是一件乏味的事情

替代解决方案(如果没有直接处理指示功能):

  • 回调或为每个函数返回一些值,并验证它们是否都已到达(我觉得不可行,因为单个函数必须执行的次数随用户指定的输入而变化,例如:用户给出3个输入,函数执行300个单元格。同样如前所述,单元格填充/加载状态即使在函数执行结束后也会发生)
  • 函数,用于扫描页面中的单元格显示值“Loading..”,如果没有,则表示加载已完成(此函数无法按预期工作,我猜可能存在一些同步问题)我知道这是最可行的选择,但我真的很期待某种自动告诉我处理完成的值/函数

  • 我认为这不需要代码片段,因为我基本上是在询问某个特定功能是否存在。如果不存在,请提供替代方案。

    最简单的方法是在单击按钮后显示加载图标。我的建议如下

    我假设有两个文件:

  • 包含视图的前端HTML
  • 包含控制器的后端应用程序脚本文件
  • 因此,在文件#1中,您将添加以下加载栏:

    <!-- this is your existing button -->
    <button id="yourTriggerButton">Click here</button>
    
    <!-- in your css file, add #loadingBar{display:none} so that is hidden by default -->
    <div class="progress" id="loadingBar">
      <div class="indeterminate"></div>
    </div>
    
    // we can also add some output message here
    <div id="outputDiv"></div>
    

    最简单的方法是单击按钮后显示加载图标

    我假设有两个文件:

  • 包含视图的前端HTML
  • 包含控制器的后端应用程序脚本文件
  • 因此,在文件#1中,您将添加以下加载栏:

    <!-- this is your existing button -->
    <button id="yourTriggerButton">Click here</button>
    
    <!-- in your css file, add #loadingBar{display:none} so that is hidden by default -->
    <div class="progress" id="loadingBar">
      <div class="indeterminate"></div>
    </div>
    
    // we can also add some output message here
    <div id="outputDiv"></div>
    

    这看起来是一个简洁的解决方案。但是,我没有html前端,我所有的代码都在.gs文件上运行,我想要的输出作为单元格值出现在电子表格上。我是否可以调用google.script.run.withSuccessHandler(handleSuccess)或者Google Sheets.gs文件中的类似内容?我可以只使用handleSuccess函数来输出“完成处理”作为单元格值,但我发现我们无法访问google.script.run-in.gs这看起来是一个简洁的解决方案。但是,我没有html前端,我所有的代码都在.gs文件上运行,我想要的输出作为单元格值在电子表格本身上。我是否可以调用google.script.run.withSuccessHandler(handleSuccess)或者Google Sheets.gs文件中的类似内容?我可以使用handleSuccess函数将“完成处理”作为单元格值输出,但我发现我们无法访问Google.script.run in.gs