Scrolling & large data set & performance

Hello,

I wonder about the following setup:

  • Install the the web app on Google or Amazon cloud

  • Have a larger set of data (temperature over time, throughput per hour, stock quotes, etc)

  • Want to graphically preset it to the user

  • Can only show parts of it and the user needs to scroll to see more

How does Vaadin perform in such a scenario? I fear that there are too many calls back to the app server or that the updates on the display are too expensive and the customer suffers delays.

Any ideas?

Thanks,
Kristof

Hello Kristof,

this depends how you will visualize the data.

Do you intend to just show the data in a table ?

If yes, then you can use the lazy loading of the data and scrolling would be fine (See the demo for this http://demo.vaadin.com/sampler#TableLazyLoading)
Of course, when the user scrolls down fast then he might get a “Loading…” message when new rows are fetched from the server,
but this then depends on the round trip times of the network connection from client ↔ server

André

Hello André,

thanks for the quick and good answer.

Unfortunately, no table will be used. I am planning on a graph.

And that seems to rely heavily on the updates from the server, right?

Imagine something like dynamic stock quotes chart. One sees the current month and by scrolling can look at the past data. Scrolling must be as granular as a day at a time or larger increments, like a week or a month …

Again, I fear that Vaadin is not the right tool for that.

Thanks,
Kristof

You should take a look at the
Vaadin Timeline

Graphical presentation with dynamic constant update is a tough task for web designers in my opinion. The trully dynamic charts (that update as you view i.e. stock charts with the line actually progressing during view) will pose problems if you have a lot of users using your site at the same time (since there will need to be a direct communication link between the server and the client and the link will need to be refreshed as often as the data needs to be updated i.e. for data updates at <1 min intervals this might be a big issue) .

The much better option is a quasi static chart i.e. the data is only drawn initially and is refreshed only when the user interacts with it. For fast scrolling of large samples. you could always add something in terms of a delay such that the content is only generated when the customer stops at a given point and not for every point that might be hit in between, or generate the sections of subdata after the principal view is rendered (lazy loading).

I believe the Timeline addOn works somewhere along those lines. It is very smooth and worth the price if you have a website that has a lot of traffic and generates a lot of revenue.