lange Datenbankabfrage

mephisto22

Grünschnabel
Hallo!
Ich hab schon das ganze Forum durchsucht aber keine passende Antwort gefunden...Hier ist meine Frage:

Ich muss in meiner Webanwendung einige Datenbankabfragen ausführen die unter Umständen etwas länger dauern. Um dem Benutzer zu zeigen das in der Zeit irgendetwas gemacht wird (und vor allem dass er nicht blöd herumklicken anfängt) würde ich gerne während dieses Vorganges eine Seite aufrufen auf der ein gif (zb. Loading o.ä.) dargestellt wird.

Meine Anwendung ist folgendermassen aufgebaut: von den jsp's wird ein Action-Parameter an ein MainServlet übergeben. Aus diesem MainServlet wird die entsprechende ActionServlet aufgerufen. Wenn die Aktion ausgeführt wurde wird ein ScreenFlowManager aufgerufen der wieder eine entsprechende Jsp aufruft. Meine "Warteseite - wait.jsp" müsste also angezeigt werden bevor das ActionServlet aufgerufen wird...

Hat irgendwer eine Idee wie das gelöst werden kann?
 
Hallo!

Also ich habe das Problem jetzt gelöst. Ich leite einfach die betroffenen Links zuerst auf das wait.jsp und leite von dort aus dann mit einem meta refresh auf das MainServlet weiter.

Nun hat sich aber ein neues Problem ergeben. Ich würde gerne auf der wait.jsp ein animiertes gif einbinden (loading...). Das Problem ist nur das mein gif nicht animiert. (ich schätz mal weil im hintergrund gerechnet wird oder so...)

Hat irgendwer einen Plan warum das gif nicht animiert wird?
 
Da das gif im Browser lebt (d.h. beim request "heruntergeladen") wird, ist die Serverlast eigentlich völlig egal. Manche Browser deaktivieren allerdings animierte gifs (z.B. wegen nervigen Werbebannern), kann es daran liegen?
 
hm...irgendwie ist das aber nicht so...

Bei mir wird das gif nur so lange animiert bis die neue seite zu laden beginnt.

Beispiel:

<meta http-equiv="refresh" content="5; URL=<%=link %>">

Ich rufe die neue Seite mit diesem Meta-Refresh nach 5 Sekunden auf...

in diesem Fall wird mein gif genau 5 Sekunden animiert und danach steht es still. Bis die neue Seite angezeigt wird dauert es aber noch ca. 20-30 Sekunden....
 
Zurück