反正有没有改善我的脚本运行时间?我有一个创建2个列表框的脚本:Listbox1
项目是我的所有Google网站页面,listbox2
项目是listbox1
页面的子页面。脚本运行正常,但有时需要2到5秒才能获得所有listbox2
个项目。
您可以尝试我的脚本here。
这是我的剧本:
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;
}
答案 0 :(得分:0)
我认为它不会加快进程,但你可以只用一个处理函数来做到这一点:在更改listBox1上,清除listBox 2并立即重新填充它。花费一些时间的是对网站内容的调用,因此差异可能没有意义,但脚本的“逻辑”会得到改善; - )
查看你的页面,我看到listBox 2永远不会被清除......这是一个临时问题吗?你最近有什么改变吗?
此外,在listBox2中选择某些内容时会发生什么?
编辑 :根据您的评论,如果您想改善有关UI“响应能力”的用户体验,最好的方法是使用客户端处理程序来触发可见性例如,“等待消息”(类似于“更新列表”)。我通常使用一个动画的gif,我用客户端处理程序看到它,并在服务器处理程序返回时再次变为不可见(即我在服务器处理程序函数中将其设置为不可见)。
这是working example,只是尝试更改右上角的日期。