I fixed the width & height of the table (with scrolling enabled) and I will load only visible data using AJAX and changes are submitted using AJAX as well.
Everything runs OK, but some operations are very slow. Initially loading the page and editing fields takes seconds, sometimes even close to a minute, without even loading any data (for now, I only set the number of rows to 2.000.000 without loading the data, just to test the performance)
I could imagine the performance problem is because handsontable is most likely storing all data loaded (all 2M records) in an array/object/something. I don't need this.
Is it possible to bypass the internal storage and have data loaded on-demand only for rows that are visible on screen?
One thing to keep in mind it that HoT still would render all visible cells on every update. So make sure your custom redenderers and editors are optimized as much as possible and if you are updating other rows / columns based on a change in one cell. Better to do that in the source data and call the render method once after all the changes are done.