Grid Loading - approaches to presenting large data sets in grids

Is there a way to combine the “lazy loading - infinite scrolling” technique with either a “load all”? I would like the list to show up and be able to scroll quickly but, I would also like it to become responsive and I also need all of the data available for a filtered csv export, this can take a bit longer but I hope to do this in the background, and I think the grid performance could take advantage of the full dataset once it is loaded.

If this is not currently possible, what are the technical limitations would I need to research to understand the limitations and consider a home-brew solution?

(combining lazy loading with a cache would also be interesting but not what I’m needing on my current focus, I suspect the database would need an extra bit of data to be able to check when the local cache becomes invalid)

The Grid component itself is always automatically lazy loading from the server to the client so this is mostly about how you manage data on the server. The main constraint with a big data set is often the needed server-side memory and then also the freshness that you mentioned.

When you configure the Grid using the setItems(BackEndDataProvider<T, Void> dataProvider) method, then you have full control over how the data is loaded. For each page of data needed by the component, you can freely choose from where to load those items and whether you then also store them for later use or not.

I don’t fully understand your question. What’s wrong with lazy loading the data? This saves memory, and there is less data to transfer from the database to the app.

If you want to create a CSV, you have to freshly load the data anyway, as it may have changed in the meantime. Btw. You can directly generate the CSV with a SQL statement.