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>

Reply via email to