Which container is suitable for Combobox lazy loading ???

Hi there,

Comobox data rendering is very slow. Its going to the server everytime to fetch the data. In low bandwidth n/w slow rendering makes it the UI very ugly.

Please suggest me any approach to make it faster. I have gone through many forums of Vaadin regarding the same. People are talking of Lazy loading options.

[b]

My data comes as Json data … I am thinking of JSON Container add-on of Vaadin.
Please suggest me the right container / right approach.
[/b]

Thanks in advance
Santi

Hi Santi,

Firstly I would suggest you to use the ?debug parameter in the URL to check through the debug console whether the slow rendering is due to the client-side or the server-side. You should look for the “server visit took” and the “processing time was XXms for yy characters of JSON” (in Vaadin 7 you’ll get more information about layout phases etc). You could also use browser developer tools to analyse the request-response cycle. Most likely your problems are on the server side/service layer.

Without knowing more about how your current containers are built it’s hard to give specific solutions. Have you profiled the service calls to ensure that the problem is not with the fetching of data from your back-end? Vaadin should be fairly useable even with slow connections (I’ve used it with mobile connections that had a throughput of ~5kb/s and a response time of ~500ms).

As for a Lazy load solution, I’ve used the LazyQueryContainer add-on which requires some setup, but will give you lots of freedom to configure it to your liking.

For further help, please tell what Vaadin version you are using, the approx. number of items that you have in the containers (are we talking 10, 1000, 100 000) and, if you can, any information about how the containers are built.

Also when you’re talking about bandwith, do you mean the bandwidth between the Vaadin server and the browser or the Vaadin server to your service/persistence layer?

Kind regards

Hi Petri,

Thanks for your reply. I am using Vaadin 6.7.6.

I am filling the data to the Combobox in this way –

comboBox.addItem(columnIdValue);
comboBox.setItemCaption(columnIdValue, columnNameValue);

My problem is not while loading the data to the combo. I called service only once and load it to it.But whenever I focus it , randomly, its taking time to render it,

using ?debug Here is what I got for 10 records.


Variable burst to be sent to server:
PID18 (class com.vaadin.terminal.gwt.client.ui.VFilterSelect) :
filter (s) :
page (i) : -1
Making UIDL Request with params: 5c88dc0a-f1e1-4b7d-b069-5d36d4085386PID18filters-1PID18pagei
Server visit took 95ms
JSON parsing took 0ms
-Response:
+change
Processing time was 20ms for 761 characters of JSON
Referenced paintables: 5

I dont know what is happening in background. I am not attaching any listeners also. Unfortunately in Production server, the vaadin loading indicator often pops up (for 22 records also).

Please suggest me the right approach to load data in the Combo.

THanks
Santi

Hi Santi,

Your approach to load data into the ComboBox is correct, the default implementation will use an IndexedContainer in the background.

What Vaadin version are you using?
What browser are you using?
Roughly, how many items do you have in the ComboBox?

Kind regards

Hi Petri,

I am using Vaadin 6.7.6.

and browser is Chrome - Version 24.0.1312.56 m

I have 10 items in the ComboBox.

Many Thanks
Santi