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…”时,同一页面的加载速度应该更快,特别是因为用户可以缓存诱骗部分,而不必每次都重新加载(这是创建模板时无法避免的)。