I had to develop (with a teammate) an application which contains mainly a table with a dozen of filters, and rows loaded from an OData service with roughly 400k entries. Since we had to frequently upload the model without storing changes into the server, and we wanted a user to immediately see the results of the changes he makes, we decided to build sap.ui.model.json.JSONModel at the start of the application, which loads its data from sap.ui.model.odata.v2.ODataModel.
We found out that, in this way, the application was significantly faster than going with the direct OData binding approach, and our trick made the app work perfectly.
So, our question is: are there any drawbacks in doing what we did? Bear in mind that we both don't have much experience with the SAP Fiori world, and that in our application users don't have to write data nor create new entries in the table, they will only view data, use some filters, sortings, and download the CSV once they filtered the table.
EDIT: Here's the link for the repo containing only an mcve, where I used Northwind OData, and do problematic operations directly on the ODataModel, without using an intermediate JSONModel. The crucial operation is a filter that displays only selected item of the table: you can change Northwind OData to any service you want and see that if the number of rows of the table grows substantially, this operation requires a lot of time. Sap UI5 version used: 1.84.0
JSONModelin that case as explained in the answer below. The only thing I question is whether users are really willing to download 400k entries everytime the app opens. - Boghyon Hoffmann