Dazu gibt es folgende APEX-Funktion:
Diese Funktion zeigt eine Warte-Animation an. Sie besteht aus einem Overlay, einem HTML Div Element, das den Benutzer davon abhält, auf irgendeinen Teil der Seite zu klicken, und einer visuellen "Spinner"-Animation irgendeiner Art. Sie hindert den Benutzer nicht daran, die Seite über die Tastatur zu bearbeiten.
Um das Popup zu schließen, verwendet man die Funktion "remove" des zurückgegebenen Objekts. Diese Funktion wird allerdings selten benötigt, da sie automatisch in apex.page.submit basierend auf der Option showWait aufgerufen wird. Auch benötigen Ajax-Operationen normalerweise kein Overlay, um das Klicken zu deaktivieren.
Der Parameter pContent ist optional.
Name | Typ | Beschreibung |
pContent | String | HTML-Code für einen Warteindikator. Wenn das nicht vorhanden ist, wird der standardmäßige |
Es gibt auch noch die Funktion apex.util.showSpinner(pContainer, pOptions).
Diese Funktion zeigt auch einen Spinner an, die dem Benutzer eine Verarbeitung darstellt. Aber bei Verwendung dieser Funktion kann man während der Anzeige des Spinners andere Element bedienen, welches in den folgenden Beispielen nicht gewollt ist.
Über eine Schaltfläche (Button) wird ein Element gesetzt und damit ein Bericht aktiviert, dessen Abfrage aber aufgrund von sehr vielen Datensätzen sehr lange dauert, bis er angezeigt wird.
Die Schaltfläche benutzt die Aktion „Zu Seite in dieser Anwendung umleiten“ (Redirect to Page in this Application) beim Klick-Event und das Ziel ist dieselbe Seite, auf der gearbeitet wird. Im Link Builder-Ziel wird ein Element gesetzt, der im Bericht für die „Serverseitige Bedingung“ genutzt wird und davon abhängig wird der Bericht angezeigt.
Eine dynamische Aktion an der Schaltfläche führt folgenden JavaScript-Code aus:
Der Spinner wird ohne ein „remove“ beendet, sobald alle Datensätze für den Bericht zur Verfügung stehen. Man kann in der Wartezeit keine anderen Elemente bedienen.
Ein Bericht wird abhängig von einer Auswahlliste (Select List) angezeigt.
Die Seitenaktion bei Auswahl ist „Redirect and Set Value“.
Eine dynamische Aktion beim Ereignis „Ändern“ führt den JavaScript-Code apex.widget.waitPopup(); aus.
Der Bericht wird durch die Serverseitige Bedingung abhängig von der Auswahlliste angezeigt. Da er zum Anzeigen der Daten lange Zeit benötigt, wird der Spinner angezeigt und der Benutzer kann während des Wartens keine anderen Elemente benutzen.
Der Spinner wird ohne ein „remove“ beendet, sobald alle Datensätze für den Bericht zur Verfügung stehen.
Über eine Schaltfläche wird ein langlaufender Prozess aufgerufen:
Die Aktion zur Schaltfläche ist eine dynamische Aktion und wird vom Klick-Event aktiviert.
Folgender Code wird ausgeführt:
Der Ajax Callback „PerformedProcess“ ist z.B. vom Typ PL/SQL-Code und verarbeitet oder berechnet Daten in einem langen Prozess. (Zum Simulieren habe ich in meinem Beispiel einfach DBMS_SESSION.SLEEP verwendet.)
Beim Ausführen ist es nicht möglich, andere Elemente der Seite zu bedienen:
Hier ist es allerdings wichtig, popup.remove() auszuführen, um den Spinner wieder auszublenden!
In unserer Know-How Datenbank finden Sie mehr als 300 ausführliche Beiträge zu den
Oracle-Themen wie DBA, SQL, PL/SQL, APEX und vielem mehr.
Hier erhalten Sie Antworten auf Ihre Fragen.