Langlaufende Prozesse in ApEx darstellen - Teil 1

Um während der Verarbeitung von Prozessen im Hintergrund den Anwender zu informieren, dass da noch was "am Laufen" ist gibt es verschiedene Möglichkeiten.

Nach einiger Rechereche habe ich mich für den Anfang (daher Teil 1) dafür entschieden folgende Lösung umzusetzen:

Während der Hintergrundverarbeitung für ein animiertes GIF (ähnlich der Sanduhr) mit entsprechendem Infotext angezeigt. (Sicher noch nicht informativ, aber besser als nichts.)
Zusätzlich wird der ungeduldige Anwender vor sich selbst geschützt: Die Schaltfläche zum Starten des Hintergrundprozesses wird für die Dauer der Ausführung ausgeblendet. (Dadurch wird verhindert, dass der Prozess parallel erneut gestartet wird.)

Umsetzung:
1) Die Region mit dem Startknopf mit einer ID versehen: button_region
2) Page-Header und -Footer anpassen:
Header Text
<script type="text/javascript">
<
!--

function html_Submit_Progress(pThis){
$x_Show('AjaxLoading');
window.setTimeout('$s("AjaxLoading",$x("AjaxLoading").innerHTML)', 100);
}

function submit_ButtonRegion(pThis){
$x_Hide('button_region');
}
//--
>
<
/script>


Footer Text
<style>    #AjaxLoading{padding:5px;font-size:18px;width:300px;text-align:center;left:40%;top:40%;position:absolute;border:2px solid #666;background-color:#FFF;}
<
/style>
<
div id="AjaxLoading" style="display:none;">.. lösche ATC- und PZN-Liste ..<br /><img src="/i/processing3.gif" id="wait" /></div>

3) Start-Button mit URL-Traget versehen:
URL Target:
javascript:html_Submit_Progress(this); submit_ButtonRegion(this); doSubmit('CREATE');

Quellen:

Kommentare

Beliebte Posts aus diesem Blog

PGA unter Oracle 11g

trunc(sysdate) - nette Spiele mit dem Datum

Datapump - Verzeichnis erstellen