In my application, I am processing a large file, wherein the system fetches the data from the file and updates it in the database. The problem is that this processing takes a lot of time (1 - 1.5 hours). This time cannot be reduced, hence I want the user to see a message for ex: "Please Wait ... Processing the Data...", But the browser times out. Hence, I want a solution whereby I can display that message to the user till the processing completes and then proceed with the next action.
You may use Javascript for the same. <html:submit value="Search" styleClass="buttons" onkklick="javascript:this.value=Please Wait ... Processing the Data...';this.disabled=true;document.searchForm.submit();"/>
This link has an example of one way to do it. I've adapted it for Struts by putting some of the code in an Action class that the authors put in a JSP, and found that it works just fine and solves the browser timeout problem. If you'd like to look at other solutions, just Google "JSP please wait message". [ February 28, 2007: Message edited by: Merrill Higginson ]
I would question a design that displayed a "please wait" message for over an hour. Will the users really wait for that time period? What if they close their browser? Will they have a way to know if the processes finished?
I would suggest you look into a more elaborate background processing model where the user can submit a task and then a background process will process the task. Probably the easiest way of submitting the job and providing feedback to the user is to use a database table. Have the background process periodically update the task's status in the database and have the status page read the status from the database.
- Brent
F is for finger. Can you stick your finger in your nose? Doesn't that feel nice? Now try this tiny ad:
a bit of art, as a gift, the permaculture playing cards