this should be done in two parts:
1. MOVE the process of filling heavy controls (your queries, if I understand correctly) AFTER the page load
2. In the browser code of the page 1 button loading page two, do a toastdisplay saying that the page is loading, please wait, AND/OR do the same thing in the lodaing page code (browser) of page 2
part 1 is done by moving the filling code into procedures called by ajaxexecute (or asynchrone) in the page loading code (browser)...
By doing that, the page will appear (not fully filled) much faster, then you will have a message asking to wait, and finally all your heavy controls will be filled