Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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 HtmlService加载异步示例代码_Javascript_Jquery_Html_Google Apps Script - Fatal编程技术网

Javascript HtmlService加载异步示例代码

Javascript HtmlService加载异步示例代码,javascript,jquery,html,google-apps-script,Javascript,Jquery,Html,Google Apps Script,在 页面加载后,参数things如何传递到函数showThings(things) 按原样运行时,html列表将被清空 在我的Code.gs中,我添加了 function getLotsOfThings() { return [1,2,3]; } 但它不会传递或存储结果,因此showThings()可以使用它 我认为这可能是个错误 但它仍然可以工作,请参见以下示例: function foo(arg) { console.log(arg); } function run(callb

页面加载后,参数
things
如何传递到函数
showThings(things)

按原样运行时,html列表将被清空

在我的Code.gs中,我添加了

function getLotsOfThings() {
  return [1,2,3];
}

但它不会传递或存储结果,因此
showThings()
可以使用它

我认为这可能是个错误

但它仍然可以工作,请参见以下示例:

function foo(arg) {
    console.log(arg);
}
function run(callback) {
    callback("bar");
}
run(foo); // "bar"

从代码来看,不清楚
东西的价值是什么,或者它来自哪里。

内置的
google.script.run
为我们做到了这一点

您可以认为,应用程序脚本平台获取服务器端函数
JSON.stringify
的返回值,然后在客户端正常地执行
JSON.parse
。由于
with SuccessHandler
接收返回函数,因此运行它并传递参数很容易。作为

下面是
with SuccessHandler
的说明:

因为客户端代码不需要等待就可以继续到下一行 要完成服务器调用,google.script API允许您 指定服务器响应时要运行的另一个客户端函数。 如果服务器函数返回一个值,则API将该值传递给 将新函数用作参数

顺便说一句,代码示例对我来说效果很好。你有什么问题吗?这是我使用的代码(加上示例的精确html文件,我称之为“页面”):

函数doGet(){
返回HtmlService.createHtmlOutFromFile('page');
}
函数getLotsOfThings(){
返回[1,2,3];
}

对我来说很好用函数doGet(request){return HtmlService.createTemplateFromFile('Page').evaluate().setSandboxMode(HtmlService.SandboxMode.NATIVE);}函数getLotsOfThings(){Logger.log('was called')返回[1,2,3];}是的,我看到了
getLotsOfThings()
是如何被调用的,但没有看到
showThings()
曾经被发送
东西
。是的,我正在试图找出
东西
来自何处,或者使用
createTemplateFromFile()
的假设是什么,缺少不可见的API传递概念。
createTemplateFromFile
也应该有效。这是不必要的,因为在那个html示例中没有什么需要计算的。实际上,这就是异步工作的主要思想。当使用“createOutput…”而不是“createTemplate…”时,同一页面的加载速度应该更快,特别是因为用户可以缓存诱骗部分,而不必每次都重新加载(这是创建模板时无法避免的)。