Pos | Attribut | Typ | Erforderlich | Beschreibung |
---|---|---|---|---|
1 | params | object | Ja | Die Parameter für die Lademeldung. |
Anders als die einfache dialog.progress Variante, die lediglich eine Animation anzeigt, können Sie mit der komplexen Variante einen Ladebalken prozentual ansteigen lassen. Zudem können Sie Ladestatus schließen und zu einem anderen Zeitpunkt wieder öffnen, was sich für die Statusprüfung von langwierigen Aufgaben eignet.
Sie müssen Ihrem Ladestatus eine Bezeichnung geben, mit der dann Ihre Aufgaben auf dem Server gekoppelt werden. Der einfachste Aufruf im Client sieht so aus:
dialog.progress({name : 'my_task'});
Dieser Aufruf erzeugt einen Ladestatus, der sich regelmäßig aktualisiert und den Status vom Server wiederspiegelt. Dazu muss Ihre auf dem Server ausgeführte Aufgabe Informationen zum Status schreiben. Hierfür wird die PHP Klasse Ego_Progress verwendet.
Ein einfaches Beispiel mit allen verfügbaren Methoden sieht so aus:
require_once('base/Ego_Progress.php');
$progress = new Ego_Progress('my_task'); // Es wird die Bezeichnung übergeben, die für name in dialog.progress verwendet wird
// Anzahl aller Teilaufgaben
$progress->setLimit(10);
// Den Gesamtprozess als gestartet markieren (optional kann eine Meldung übergeben werden, die im Ladestatus angezeigt wird)
$progress->start('Starte Prozess...');
$n = 1;
while ($n <= 10) {
sleep(2000);
// Eine Teilaufgabe als beendet markieren (optional kann eine Meldung übergeben werden, die im Ladestatus angezeigt wird)
$progress->increase("Aufgabe $n abgeschlossen...");
$n++;
}
// Den Gesamtprozess als beendet markieren (optional kann eine Meldung übergeben werden, die im Ladestatus angezeigt wird)
$progress->end('Prozess beendet!');
Die Methoden start, increase und end kennen zudem als zweiten Parameter $data. Hier kann ein mehrdimensionales Array mit weiteren Informationen übergeben werden. Diese können in der Logdatei des Fortschritts in <log_dir>/progress/ im Fehlerfall eingesehen werden.
Mit dem dritten Parameter $amount für die Methode increase kann die Menge an zu abgearbeiteten Teilaufgaben geändert werden (Standard: 1).
Weitere Methoden für Ego_Progress sind:
- setMessage: Eine neue Meldung im Ladestatus anzeigen.
- hasFinished: Prüfen, ob der Fortschritt abgeschlossen ist.
- getValue: Alle Daten des Fortschritts ermitteln.
- getValueByKey: Einen bestimmten Wert aus den Daten des Fortschritts ermitteln.
- setData: Die letzten Informationen setzen.
- clear: Logdatei löschen. Die Bezeichnung kann für einen neuen Fortschritt wieder verwendet werden.
- exists: Eine Logdatei mit der angegebenen Bezeichnung existiert bereits. Der Fortschritt kann fortgesetzt werden.
Zudem gibt es noch weitere Parameter für dialog.progress:
- showLength: Die Dauer des Fortschritts anzeigen.
- showMessage: Die Meldung des Fortschritts anzeigen.
- titleOnFinish: Titel des Ladestatus ändern, sobald der Fortschritt abgeschlossen ist.
- hideOnFinish: Den Ladestatus schließen, sobald der Fortschritt abgeschlossen ist.
- keepAlive: Den Fortschritt weiterführen, wenn der Ladestatus zwischenzeitlich geschlossen wurde (Standard: false).
- onFinish: Callback sobald der Ladestatus abgeschlossen ist.
- onProgress: Callback sobald eine Teilaufgabe abgeschlossen ist.