Make Export to Excel asynchronous to allow for better user/UI interactions (cancel buttons, dynamically updated progress bars, etc)
Currently the ig.GridExcelExporter exportGrid method runs synchronously. Once it starts, it cannot be interrupted. Although there are callbacks provided (ex. rowExporting, exportEnding, etc) which documentation states can be cancelled, the synchronous fashion of the exportGrid method prevents a user from interacting with the process once it has begin.
I've tested this by creating a cancel button and logged to the browser console when each callback and click event fired. The click event of the cancel button fires after the success callback of the exportGrid even if clicked early in the exporting process. Currently, the only way to cancel an export is to have the decision (criteria) determined BEFORE the exportGrid method is kicked off. I'm sure there aren't too many cases where that will occur or be helpful.
Additionally, I've tried implementing a simple Bootstrap progress bar. My intent was to have the progress bar update upon each "rowExported" callback. Again, since the exportGrid method runs synchronously, there no way to update the browser UI so the end result is the progress bar stays at 0% until the exportGrid method has completed, at which point the progress bar jumps to 100% from 0%. This is most noticeable on grids with thousands of rows.
Thanks for the idea.
We will see if we can make the process asynchronous.