Prevent UI updated in another thread from being irresponsive

Hello everybody,

In my Vaadin Application I have a table which is being updated in another thread very often, sometimes 50 times in one second. I use DontPush OzoneLayer for propagating the changes to the UI and it works fine.
Every time the table is being updated I synchronize on the App - I must do this to avoid inconsistent states. So my Application is very often blocked and irresponsive. The table has a column with checkboxes, in order to select a checkbox the user must click more times until the checkbox is selected, most of the times his click events get lost and nothing happens. Another effect is that the scroll bar of the table cannot be always moved, it jumps most of the time to its earlier position…
I would like to have the app much more responsive. Does someone know what can I do to prevent the app being blocked most of the time?

Thanks, Sabina

I don’t think 50 times per second is realistic through internet with a few users anyway.
It may work really well locally but once deployed it will break down with lag.

I would recommend you to push the update ~5 times per second max. Update the server state with the other data (or drop the updates if they are not incremental) but don’t push them to the client under the risk of freezing javascript (which is monothread in all browsers so while it changes the UI, user can not do anything) or put huge load on your server when several users are using it.

Thank you,
I will try to update the Table with the Refresher or ICEPush Add-On once per Second. This should be enough for the users…