Hi forks,
I have a trouble on datacombobox performance.
I use some own components that is extended with datacombobox.
The attachment is the sample.
You can see how slow binding data in datacombobox.
This is a tiny code but it take over 1 second to bind data.
In fact, i use a ton of datacombobox in a view, so this *slow binding*
became big trouble on my apps.
Are there any workaround of it ?
It works on below environment.
Windows XP, Pen4 2GHz, 2GBmem
OL3.3.3, FireFox 2.0, Flash Player v9
Thanks,
mt1
<?xml version="1.0" encoding="UTF-8" ?>
<canvas debug="true">
<script>
var startTime = 0;
var endTime = 0;
</script>
<dataset name="dumlist">
<resultset />
</dataset>
<dataset name="dlist">
<resultset>
<d name="[Choose..]" value="0"/>
<d name="AA" value="1"/>
<d name="BB" value="2"/>
<d name="CC" value="3"/>
<d name="DD" value="4"/>
</resultset>
</dataset>
<dataset name="d">
<resultset>
<dd attr1="1" attr2="2" attr3="3" attr4="4" attr5="5"
attr6="6" attr7="7" attr8="8" attr9="9" attr10="10" />
</resultset>
</dataset>
<class name="dcom" extends="datacombobox" selectfirst="true" textdatapath="@name" valuedatapath="@value">
<attribute name="defaultvalue" value="-1" />
<handler name="ondata" args="val">
if( val == null ){
_updateSelectionByIndex(0,false,true);
this.selectItemAt(0);
}
</handler>
</class>
<simplelayout axis="x"/>
<view name="vform" layout="axis:y" datapath="d:/resultset/dd">
<edittext name="attr1" datapath="@attr1"/>
<edittext name="attr2" datapath="@attr2"/>
<edittext name="attr3" datapath="@attr3"/>
<edittext name="attr4" datapath="@attr4"/>
<edittext name="attr5" datapath="@attr5"/>
<dcom name="dl" datapath="@name" itemdatapath="dlist:/resultset/d" defaultvalue="0" />
<dcom name="d2" datapath="@name" itemdatapath="dlist:/resultset/d" defaultvalue="0" />
<dcom name="d3" datapath="@name" itemdatapath="dlist:/resultset/d" defaultvalue="0" />
<dcom name="d4" datapath="@name" itemdatapath="dlist:/resultset/d" defaultvalue="0" />
<dcom name="d5" datapath="@name" itemdatapath="dlist:/resultset/d" defaultvalue="0" />
<dcom name="d6" datapath="@name" itemdatapath="dlist:/resultset/d" defaultvalue="0" />
<dcom name="d7" datapath="@name" itemdatapath="dlist:/resultset/d" defaultvalue="0" />
<dcom name="d8" datapath="@name" itemdatapath="dlist:/resultset/d" defaultvalue="0" />
<dcom name="d9" datapath="@name" itemdatapath="dlist:/resultset/d" defaultvalue="0" />
<dcom name="d10" datapath="@name" itemdatapath="dlist:/resultset/d" defaultvalue="0" />
<handler name="ondata">
var dt = new Date();
endTime = dt.getTime();
var dt = endTime - startTime;
Debug.write( "take time: " + dt/1000 + "[sec]" );
</handler>
</view>
<view name="buts" layout="axis:x">
<button> Init
<handler name="onclick">
var dt = new Date();
startTime = dt.getTime();
parent.parent.vform.setDatapath( "dumlist:/" );
</handler>
</button>
<button> Bind
<handler name="onclick">
var dt = new Date();
startTime = dt.getTime();
parent.parent.vform.setDatapath( "d:/resultset/dd" );
</handler>
</button>
</view>
</canvas>