We're developing a web application using React for the FrontEnd part of the various modules. One of the pages of the application is a master-detail view. On the master we're going to show a simple grid of database-records with a hyperlink/button on each row to edit the details of each record.
My boss proposed that when we click on an edit link/button, we should do an asynchronous call to swap the master-view with the detail-view for the selected database-record without to navigate to a separate URL and reload the entire page.
From his point of view,
- this approach is much more performance-friendly since we wouldn't have to reload the entire page
- this is the way to build modern web applications / single page application.
I remarked that this way the users wouldn't be able to open each database-record in a new tab since we would swap a component instead of navigating to the URL for the details-view.
From my point of view this would be a big drawback because
- the users would not be able to open each database-record in a new tab, which would be very uncomfortable
- the approach of opening each record in a new tab is a widespread pattern over a lot of websites.
- I think a lot of users around the web are used to open many detail-views in new tabs to have them opened at once, for example
- to compare their data without to navigate forward and backward
- or just to store them in different tabs to be able to check them at a later point of time.
Which of these approaches makes more sense considering
- the common (navigation) patterns used for websites / web applications
- the best practices to be considered to build web applications / single page applications