I am working on jsp, What I am trying to implement is quite simple.
- do some time-consuming work with Java
- while processing, show users the spinner
So I have implemented like below
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page isThreadSafe="true" %>
<%
boolean isFinish = false;
Thread executeThread = new Thread(new Runnable() {
@Override
public void run() {
for(int i = 0; i < 10; i++){
try{
System.out.println(i + " Thread ");
Thread.sleep(1000);
}catch(Exception ex){
System.err.println(ex);
}
}
}
});
executeThread.run();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>Loading</title>
</head>
<body>
<div class="popup" style="text-align: center;">
<div class="l_img">
<img src="resources/image/spinner/loading_gif.gif" alt="LOADING...">
</div>
<div class="b_txt">Processing</div>
<div class="s_txt">Please, wait..</div>
</div>
</body>
<%
if(isFinish){
%>
<script>
alert('done');
</script>
<%
}
%>
</html>
However, page shows up after Thread has terminated. Could I reverse the order? What I wanted in order
- show html page(
spinner gif
) - execute Java logics
- catch the return of Java execution
- if return is
true
, then alert with javascript
Is it possible? Thanks for your answers