Div einblenden bis Seite geladen wurde !? möglich?
frettchenpower
- javascript
Moin,
ich habe ein Java geschrieben, das mit aus Datenbankdaten ein PDF Dokument erzeugt. Je nach Datenmenge kann das schon mal bis zu 9 Sekunden dauern und der Benutzer sieht dabei nicht viel.
Ergo: Viele klicken 5 - 6 mal auf diesen kleinen Button bis er platzt (Der Server).
Ich möchte nun ein Div einblenen in dem ich darauf hinweisen kann das die Generierung ein wenig länger dauert. Perfekt wäre natürlich, wenn ich das Div Anzeige und sobald das PDF in einem PopUp erzeugt wurde wieder schliessen kann.
Das PDF wird auch nicht direkt im PopUp angezeigt, sondern nur ein Link auf die gerade erstellte PDF Datei auf dem Server.
Also haben wir eigentlich folgende Konstellation:
DIV wird von Parent-Window angezeigt und von PopUp Window wieder geschlossen. ABER WIE?
Ich bin für jedes "Brett vor dem Kopf wegnehmen" dankbar.
Jenson
Hi Jenson,
reicht es nicht, den entsprechenden Button onclick zu deaktivieren und darunter einen Hinweistext anzuzeigen?
Grüße
Ralf
Hi Ralf,
grundsätzlich schon, es wäre aber ein "Nice to Have". Es handelt sich dabei um eine Intranet-Anwendung und in der versuchen wir natürlich möglichst den gleichen Komfort zu beiten wie in unseren normalen System intern.
muss doch irgendwie machbar sein ...
Jenson
hi,
muss doch irgendwie machbar sein ...
sollte nicht allzu schwer sein.
per onclick auf dem link, der das script auf dem server anstößt, blendest du in der noch aktuellen seite den dort bereits vorhandenen div dynamisch ein (CSS-eigenschaften per JS dynamisch ändern, style-objekt).
der sollte dann so lange zu sehen sein, bis die antwortseite vom server kommt.
gruß,
wahsaga
muss doch irgendwie machbar sein ...
sollte nicht allzu schwer sein.
Das dachte ich auch :-)
per onclick auf dem link, der das script auf dem server anstößt, blendest du in der noch aktuellen seite den dort bereits vorhandenen div dynamisch ein (CSS-eigenschaften per JS dynamisch ändern, style-objekt).
der sollte dann so lange zu sehen sein, bis die antwortseite vom server kommt.
Na aber die Antwort vom Server kommt ja dann in einem durch den Mausklick geöffneten PopUp. Und ich verwende kein SUBMIT button, sondern ein
<input type="button" name="generatePDF" onClick="....">
Da wird die "Parent" Seite ja auch nicht neu geladen (Soll sie auch nicht, denn das dauert auch ne weile.)
gruß,
wahsaga
Gruss zurück
Jenson
Hm, ich weiß nicht, ob das funktioniert, ist nur so eine Idee:
Vielleicht kannst Du, sozusagen als letzte Zeile, nach den Datenbankdaten ein Skript "an des Fenster senden", das per opener und den Objektbaum irgendwie auf die entsprechende CSS-Eigenschaft des DIVs zugreift?
Grüße
Ralf
Also zur Allgemeinen Verwirrung :-) Ich verwende hier einen Lotus Domino Server auf dem mir kein PHP zur Verfügung steht. Also auch keine Redirects oder dergleichen serverseitig.
Kann man nicht von einem PopUp irgendwie auf ein DIV des parents zugreifen?
Jenson
hi,
Also zur Allgemeinen Verwirrung :-) Ich verwende hier einen Lotus Domino Server auf dem mir kein PHP zur Verfügung steht. Also auch keine Redirects oder dergleichen serverseitig.
und mit welcher technik wird dann dein PDF-file dynamisch generiert ...?
Kann man nicht von einem PopUp irgendwie auf ein DIV des parents zugreifen?
ja, schon - aber dazu muss ja erst mal eine seite fertig ins popup geladen sein. und nur weil das so lange dauert, diskutieren wir doch hier überhaupt, oder? da sollte dir der denkfehler jetzt aber auffallen ...
gruß,
wahsaga
Hi,
Na aber die Antwort vom Server kommt ja dann in einem durch den Mausklick geöffneten PopUp.
und kannst Du hier nicht einfach eine HTML-Seite laden, die den Hinweistext anzeigt und auf die PDF-Datei weiterleitet (per refresh oder location?)
freundliche Grüße
Ingo
hi,
der sollte dann so lange zu sehen sein, bis die antwortseite vom server kommt.
Na aber die Antwort vom Server kommt ja dann in einem durch den Mausklick geöffneten PopUp.
OK, ich war davon ausgegangen, dass du innerhalb der _gleichen_ seite eine "warten"-meldung einblenden wolltest, die dann von der antwortseite wieder eliminiert wird.
wenn's aber direkt im popup geschehen soll, kommst du so zunächst mal nicht weiter.
du hast nch nicht gesagt, welche serverseitge technik du verwendest - bei PHP zum beispiel wären flushen des ausgabe-puffers eine denkbare möglichkeit, um schon daten an den client zu senden, _bevor_ das script fertig ist.
du könntest natürlich auch einen zwischenschritt einlegen: im popup öffnest du zunächst nur eine seite, die die "bitte warten"-meldung anzeigt. und wenn diese seite geladen ist, löst sie einen erneuten request an den server aus, der erst dann das eigentliche verarbeitungsscript auslöst ...
gruß,
wahsaga