Hallo Allerseits!
Ich habe eine Problemstellung, zu der ich im WWW nichts gefunden habe und brauche daher die Unterstützung der Profis...
Folgende Aufgabe:
Es existiert ein Button.
Wenn dieser angeklickt wird, wird ein PHP-Script ausgeführt.
Da dieses sehr rechenintensiv ist, soll der Benutzer eine Art "Ich bin beschäftigt"-Feedback erhalten, solange der Vorgang läuft.
Ich dachte da zuerst an eine Veränderung des Cursors.
Dies geht ja recht einfach mit z.B.
document.body.style.cursor='wait';
Soweit so gut.
Der vollständige Code lautet:
document.body.style.cursor='wait';
window.location.href = "../Verzeichnis/datei.php";
document.body.style.cursor='default';
In der 1. Zeile wird der Cursor auf "busy" gesetzt.
In der 2. Zeile wird das PHP-Skript geladen.
Und in der 3. Zeile der Cursor dann wieder zurück gesetzt.
Leider funktioniert dies nicht, da die JavaScript-Zeilen einfach hintereinander weg abgearbeitet werden. Will heißen, Zeile 3 wird ausgeführt, obwohl der Befehl in Zeile 2 noch nicht vollständig abgearbeitet wurde.
Ich habe deshalb mit Ajax experimentiert. Über das XMLHttpRequest-Objekt kann man ja eine Rückmeldung vom Server erhalten, wann dieser mit der Abarbeitung fertig ist.
Dies funktioniert nur bedingt. Ich erhalte zwar nach der Abarbeitung über den HTTP-Statuscode die Antwort 200 (für Ok), aber das Ergebnis der Abarbeitung wird nicht an den Client gesendet (das PHP-Skript erzeugt eine Excel-Datei, die an den Client gesendet wird).
Da ich mit meinem "Latein" am Ende bin, hier der Post und die Frage an Euch, ob ihr eine Idee habt.