Google apps script 谷歌应用程序脚本在谷歌网站上执行期间重新启动

Google apps script 谷歌应用程序脚本在谷歌网站上执行期间重新启动,google-apps-script,Google Apps Script,我正在创建一个带有按钮和文本框的UI面板,供谷歌网站使用。似乎脚本有时会重新启动(全局重新加载,日志清除)——我能想象的最好情况是在按下按钮之后。按钮处理程序中没有导致错误的内容。按钮处理程序运行正常(doGet似乎不再运行)。 使用以下命令设置按钮处理程序。也许是什么原因造成的 //container is the app //textOnButton = "Next" //handler ="submitNext_" - name of method that handles cli

我正在创建一个带有按钮和文本框的UI面板,供谷歌网站使用。似乎脚本有时会重新启动(全局重新加载,日志清除)——我能想象的最好情况是在按下按钮之后。按钮处理程序中没有导致错误的内容。按钮处理程序运行正常(doGet似乎不再运行)。
使用以下命令设置按钮处理程序。也许是什么原因造成的

//container is the app

//textOnButton = "Next"

//handler ="submitNext_"   - name of method that handles click

//vPanel is the panel containing the button

var submitButton = container.createButton().setId(textOnButton);

submitButton.setText(textOnButton);

// submit handlers

var submitServerHandler = container.createServerClickHandler(handler);

submitServerHandler.addCallbackElement(vPanel);  

submitButton.addClickHandler(submitServerHandler); 
对这种行为有什么想法吗?主要问题是我的几个全局常量不是真正的常量,它们在重新启动时被重新设置。我可以将它们存储在UserProperties中作为一种解决方法,但我想了解发生这种情况的原因。

这可能与您正在使用的处理程序
createServerClickHandler(处理程序)
有关


不确定但值得一试?

这是故意的行为。每个回调都运行一个“新”脚本,因此不建议使用实际上不是常量的常量。请参见此处的类文档:


Serge,这些方法被弃用只是因为我们用createServerHandler替换了它们,createServerHandler适用于任何类型的处理程序。所有冗长的createServerXXXHandler方法仍然有效;它们只是createServerHandler的同义词。

感谢您的回复。很好的猜测,但是我已经按照建议做了改变,行为仍然存在。谢谢你的回复。在阅读了文档之后,我发现建议是我已经想到的解决方法——在用户属性中存储状态数据。