清理数据集需要花费大量时间在Openlaszlo

时间:2013-09-09 07:13:07

标签: dataset openlaszlo

我有一个如下定义的数据集:

<dataset name="MyComboDset" request="false" src="http:servlet/myTestServlet" 
type="http" ondata="Debug.write('reloaded data for combo');" />

我用它来填充自定义组合框:

<class name="mycombo" extends="combobox" editable="false"
    width="130" autoscrollbar="true" shownitems="20" >
    <attribute name="where" type="string" value="true" />
    <textlistitem
        datapath="MyComboDset:/mynode1/mynode2/mynode3/"
        text="$path{'@name'}" value="$path{'@type'}" name="andytxtlstitem" >
        <method event="ondata">
            <![CDATA[

        var txt = this.datapath.xpathQuery("@name");
        if(txt=="Dummy")
        {
            parent.removeItem(txt);
        }           
        parent.selectItemAt(0);
        ]]>
        </method>
    </textlistitem>
</class>

我手动提交表单。

现在,当我使用相同的代码单独运行时,几乎可以立即重新填充。

但是,当我从我们的应用程序中运行代码时,如果列表中的项目数为25,则需要12秒才能重新填充。

我尝试用datacombobox替换我的自定义组合框,它似乎立即重新填充。

经过各种检查发现清除数据集中的数据需要时间。 如果我在Evaluator中执行以下代码:

Debug.write("start :"+(new Date()).getTime());canvas.uiattrrules.setData([]);Debug.write("end :"+(new Date()).getTime());

在12秒之后,如果我重新填充组合框,它发生的速度要快得多。

这里发生了什么?如何重新填充数据集值? 建议任何改变,使其更快。

0 个答案:

没有答案