Friday, November 27, 2015

Optimizing subjective performance accessing big celllists (kind of double buffering)


I have a mobile app written in GWT/mgwt/PhoneGap and I'm suffering some sort of subjective performance degradation when accessing big celllists. This app is pretty similar to WhatsApp, and what they do to overcome this rendering issue is pretty simple: you click on the group you want to see, then you stay there until the new page has been rendered completely and then you are submitted instantly to the new page with all the messages (the big celllist). Seems simple, but it's a different approach to what we're used to under a MVP world like ours (at least to the point I know it :)

When doing MVP I click on a cell (groups activity) and then switch to another view where I render the messages of that group. These messages come from a WebSQL backend and take 200-400ms to render, and what is worse: when using old devices (even with XWalk project built-in) the rendering is done "incrementally", meaning the end user feels the celllist building, instead of having an immediate load of all the different cells.

What I am looking for is some sort of double buffering, where the render is done in background and then made visible instantly when it's finished. Of course we've managed to wrap the scrollPanel where the cells get rendered with a visible/invisible div and make the scrollPanel visible when the celllist is already rendered, which goes from 50ms to 500ms depending on the number of cells. 

So, there are 2 scenarios: the one we've already implemented (after the groups->messages transition) and the one which uses WhatsApp (for instance), which does it _before_ the groups->messages transition, which, in my opinion, is more user friendly.

Do you guys know how to achieve this?

If you need more details, code, etcetera, please don't hesitate to ask.

Thx a lot! ;)

You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To post to this group, send email to
Visit this group at
For more options, visit

No comments:

Post a Comment