I have a problem deciding what the user is expecting from the app when using the export functionality.
I have a web app which allows the user to export data from a grid, either one row at the time or by selecting multiple/all rows. The data that would be exported may be very large as we display only some fields in this step. As an example, an export could last ~1 minute as it builds an excel of ~500 pages.
- v1. Block the UI so the user is not able to do anything until the export is done.
- v2. Do the export in a separate tab and let the user continue using the app.
For v1 the inconvenient is that the user could be annoyed because he has to wait.
For v2 there is the risk of having inconsistent data due to the fact that giving the control to the user, he could alter some data that is going to be exported.