jquery und pdf generierung abwarten
-
hallo,
ich generiere ein autmoatisches pdf ueber php, was auch einmal bis zu 30 sekunden dauern kann. ich wollte deshalb eine ladeanimation einblenden...
das einblenden ist auch kein problem, einfach ein onClick und dann ist gut... nur woher weiss ich wann das script fertig mit generieren ist, sodass ich die animation wieder ausblenden kann?
-
Naja das Zauberwort heißt hier AJAX, da gibts ja auch einfache Funktionen für in jquery.
-
okay das ist klar, nur wenn ich mein php script, das die pdf datei erzeugt, ueber ajax aufrufe, dann bekomme ich die binaerdaten des pdf dokumentes zurueck und habe dann das pdf in einer variable stehen und kann es nicht ausgeben...
-
Es gibt noch die Moeglichkeit, das Ganze per
iframe
zu loesen: Du laedst die PDF-Datei in einem versteckten iframe und blendest per Javascript die Ladeanimation im Hauptdokument ein. Die PHP-Datei, die die PDF erzeugt, wiederum beinhaltet per Javascript die Ausblendefunktion im Hauptdokument und das damit verbundene Einblenden eines Links zum PDF-Dokument.So in etwa wuerde ich da jetzt ohne Ajax rangehen. Das ist ja auch immer sone Sache, mit AJAX.
Alternativ - oder eher schon primaer - wuerde ich das Ganze einfach per Post realisieren: Du klickst auf die Schaltflaeche, das PDF-Dokument wird kreiert und wenn die PHP-Datei damit fertig ist, macht sie halt den Rest und stellt die neue Seite dar. Ich denke, die Ladebalken u. ae. sollte man dem Browser ueberlassen, denn nicht jeder Browser und/oder Benutzer akzeptiert AJAX und/oder Javascript.
Wenn du Wert auf eine Animation legst, kann man noch einen Kompromiss eingehen und im
<form>
-Tag beim EreignisonSubmit
eine Javascript-Funktion aufrufen, welche eine Animation einblendet. Diese wird beim Einblenden des neuen Dokuments automatisch ausgeblendet, da sich ja eine neue Seite laedt.
-
heini schrieb:
Ich denke, die Ladebalken u. ae. sollte man dem Browser ueberlassen, denn nicht jeder Browser und/oder Benutzer akzeptiert AJAX und/oder Javascript.
Nein. Der Browser zeigt keinen sinnvollen Ladebalken an.
AJAX ist hier perfekt weil du es zusätzlich verwendest und ohne ajax hast du immer noch eine dummy-lade seite.