• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2566
  • Last Modified:

JSP, show a loading spinner

I have a third party jsp page we are using in an application.  The page has a lot of internal logic and lengthy database queries and page loads are typically 10 - 20 seconds.    I am new to jsp, it is possible to display a loading message or ajax spinner while the page is loading?  I have done this before using .net pages, but I am not sure how to make this work with jsp.

Any help would be greatly appreciated.
0
shanemay
Asked:
shanemay
  • 6
  • 5
1 Solution
 
rrzCommented:
>page loads are typically 10 - 20 seconds.  
Do you to say that nothing shows up in the browser until then ?
Please try this demo code.
<html>
<body>
Some text here is necessary here for the IE browser to start displaying. 
Otherwise it will wait until it receives enough of a response to begin displaying anything.
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz I am sure how much padding is necessary. But this works for me.
<%
  out.print("<br/>Starting processing now. <br/>");
  out.flush();
  for(int x = 0; x < 3; x++){
                             Thread.sleep(3000);  //mock processing
                             out.print("Record for cust-id" + x + " submitted and mail sent successfully.<br/>");
                             out.flush();
  }
%>
</body>
</html>

Open in new window

0
 
shanemayAuthor Commented:
I will give your code a shot, but yes, nothing shows in the browser until then, the page does alot of processing and at the end dumps text onto the page.
0
 
shanemayAuthor Commented:
Same result, the page loads slowly, but nothing shows while the page is processing.  Even a message saying loading would be better than a blank screen.  
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
rrzCommented:
Did you try my demo code ?
out.flush() is the key. It will send whatever is in buffer at that time. But as I explained in demo it needs some output at begining to get the ball rolling( especially in IE).
0
 
rrzCommented:
Please show some pseudo code that describes what you are doing. Give us more details.
0
 
shanemayAuthor Commented:
I did try the code listed above ( page was blank during processing ).  As for pseudo code - The page creates a connection to the database, runs five queries, processes the results into a set of links, then displays the links for the user with some standard text as a header and footer which is also pulled from the database.  Nothing displays on the page until all the processing is complete which can take some time.    Also, the page is being displayed in an iframe (if that matters).

Thank you for your help.
0
 
rrzCommented:
I did try the code listed above ( page was blank during processing ).  
Which browser are you using ?
When I run it, it display the first couple of sentences right away. After 3 seconds it displays
Record for cust-id0 submitted and mail sent successfully.
then after 3 seconds it displays
Record for cust-id1 submitted and mail sent successfully.
and so on.    

As for your code, why not get the header and send that using out.flush() It needs to big enough for IE to react.
After that, can you get the links one at a time and send them individually with out.flush()  ?

0
 
shanemayAuthor Commented:
I am using FireFox 3.6 and IE 8 as testing.  
0
 
rrzCommented:
I just tested in a iframe in IE 8.   The output is displayed progressively as I posted.
Did you just cut and paste my exact JSP ?  
0
 
rrzCommented:
You have to name the file  something like test.jsp
0
 
shanemayAuthor Commented:
Thank you for your help, sorry for the late response.  That is working now, not sure what I was doing, but it works fine.  
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 6
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now