Google apps script 改进我的脚本运行时间

Google apps script 改进我的脚本运行时间,google-apps-script,google-sites,Google Apps Script,Google Sites,还有什么可以改进我的脚本运行时间的吗?我有一个创建2个列表框的脚本:Listbox1项目是我所有的google站点页面,listbox2项目是Listbox1页面的子页面。脚本运行正常,但有时需要2到5秒才能获取所有listbox2项 你可以试试我的剧本 这是我的剧本: function doGet() { var app = UiApp.createApplication(); //GUI with 2 listbox //Listbox1: onclick > lbox1

还有什么可以改进我的脚本运行时间的吗?我有一个创建2个列表框的脚本:Listbox1项目是我所有的google站点页面,listbox2项目是Listbox1页面的子页面。脚本运行正常,但有时需要2到5秒才能获取所有listbox2项

你可以试试我的剧本

这是我的剧本:

function doGet() 
{
  var app = UiApp.createApplication();
  //GUI with 2 listbox
  //Listbox1: onclick > lbox1onclick(e), onchange > lbox1onchange(e)
  app.add(app.loadComponent("MyUrlParser")); 
  var lbox1 = app.getElementById('ListBox1');
  lbox1.addItem(' ');
  var lbox1_Item = SitesApp.getSite('phichdaica').getChildByName('manga').getChildren();
  for(var i = lbox1_Item.length-1; i >= 0; i--)
  {
      lbox1.addItem(lbox1_Item[i].getTitle());
  }
  return app;  

}

function lbox1onclick(e)
{
  var app = UiApp.getActiveApplication();
  var lbox2 = app.getElementById('ListBox2');
  lbox2.clear();
  return app;
}

function lbox1onchange(e)
{
  var app = UiApp.getActiveApplication();
  // var value = e.parameter.lbox1;
  var lbox1value = e.parameter.ListBox1;
  var lbox2 = app.getElementById('ListBox2');


  var lbox2_Item = SitesApp.getSite('phichdaica').getChildByName('manga').getChildByName(lbox1value).getChildren();

  for(var i=lbox2_Item.length-1; i >= 0; i--)
  {
    lbox2.addItem(lbox2_Item[i].getTitle());
  }
  return app;
}  

我认为这不会加快进程,但您可以只使用一个处理程序函数来实现这一点:在ChangeListBox1上,清除ListBox2并立即重新填充它。需要花费一些时间的是对站点内容的调用,因此差异可能没有意义,但脚本的“逻辑”将得到改进-

查看您的页面,我发现列表框2从未被清除。。。这是暂时的问题吗?你最近有什么改变吗

另外,当在listBox2中选择某个内容时,应该发生什么

编辑:在你的评论之后,如果你想改善用户体验,提高用户界面的“响应性”,最好的方法是使用客户端处理程序触发“等待消息”的可见性,例如更新列表。我通常使用一个动画gif,我用一个客户端处理程序使其可见,当服务器处理程序返回ie时,它又变为不可见。我在服务器处理程序函数中将其设置为不可见


这是一个,请尝试更改右上角的日期。

嗨,谢尔盖,谢谢你的建议。我使用了2个处理程序,因为当listbox1中的更改花费了1-3秒(约5秒)时,人们会认为listbox2尚未更新,而所有项都是子页面。我认为使用onclick处理程序不会增加运行时间。因为当你点击listbox1时,你必须花时间挑选一个项目。这就是为什么我在onchange函数中删除了lbox2.clear。