Очистка набора данных занимает много времени в 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>

Я отправляю форму вручную.

Теперь, когда у меня один и тот же код работает отдельно, для его повторного заполнения требуется гораздо меньше времени, почти мгновенно.

Но, когда у меня есть код, выполняющийся из нашего приложения, повторное заполнение занимает 12 секунд, если количество элементов в списке равно 25.

Я попытался заменить свой пользовательский комбобокс на datacombobox, и он, кажется, мгновенно заполняется.

После различных проверок установлено, что очистка данных в наборе данных занимает время. Если я выполню следующий код в Evaluator:

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

Это занимает те же 12 секунд, после чего, если я снова заполняю комбинированный список, это происходит намного быстрее.

Что здесь происходит? Как заново заполнить значения набора данных? Предложите любое изменение, чтобы сделать это быстрее.

0 ответов

Другие вопросы по тегам