Google apps script 改进我的脚本运行时间
还有什么可以改进我的脚本运行时间的吗?我有一个创建2个列表框的脚本:Listbox1项目是我所有的google站点页面,listbox2项目是Listbox1页面的子页面。脚本运行正常,但有时需要2到5秒才能获取所有listbox2项 你可以试试我的剧本 这是我的剧本: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
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。