WaBis

walter.bislins.ch

Async: Properties

Async : Demo | Download | Anwendung | Klasse | Properties | Funktionen
Async Properties
RunTime Nach dieser Zeit in [ms] gibt IsTimerExpired() true zurück
WaitTime Zeitverzögerung bis zum Aufruf des nächsten Code-Abschnittes in [ms]
SyncMode false → Asynchron, true → Synchron Betrieb
Debug true → GetElapsedTime() gibt immer 0 zurück
OnException Fehler-Handler
TimerStartTime Zeit beim Aufruf von StartTimer() in Millisekunden seit dem 1.1.1970

CAsync.RunTime

CAsync.RunTime: Integer(>=0); Init = 12 

Bei der Funktion IsTimerExpired() kann eine Zeit gemessen ab StartTimer() angegeben werden, nach welcher die Funktion true zurückgibt. Wenn keine Zeit angegeben wird, wird RunTime verwendet.

CAsync.WaitTime

CAsync.WaitTime: Integer(>=0); Init = 0 

Zeitverzögerung bis zum Aufruf des nächsten Code-Abschnittes in Millisekunden. Dieser Wert kann normalerweise auf 0 belassen werden. Andere anstehende Prozesse im Browser werden deshalb trotzdem dazwischen ausgeführt. Die effektive Verzögerung zwischen der Ausführung von zwei Code-Abschnitten ist also abhängig davon, was sonst noch für Scripts und Browser-Prozesse hängig sind. Die Ausführung des nächsten Code-Abschnittes wird beim Wert 0 so bald als möglich in Angriff genommen, in der Regel innerhalb weniger Millisekunden.

Zu Debug-Zwecken kann es sinnvoll sein, den WaitTime Wert mal auf z.B. 1000 zu setzen. Dann kann man der Ausführung des Scripts bequem folgen.

CAsync.SyncMode

CAsync.SyncMode: Boolean; Init = false 

Unter Umständen kann es sinnvoll sein, ein Scripts mal asynchron, ein andermal synchron, also ohne Unterbruch, auszuführen. Durch setzen von SyncMode auf true wird die Ausführung eines mit Async programmierten Scripts nicht unterbrochen. Im Script müssen dazu keinerlei Anpassungen gemacht werden.

Ein Beispiel für die Anwendung von SyncMode ist die Async Demo. Für die Vorschau und die volle Grafik wird derselbe JavaScript Code verwendet. Die Vorschau wird jedoch mit SyncMode = true ausgeführt, sodass man deren Aufbau nicht verfolgen kann. Statt dessen erscheint nur die vollständige Grafik der Vorschau. Dadurch kann verhindert werden, dass das Bild stark flackert. Der Nachteil ist, dass das Zeichnen der Vorschau nicht unterbrochen werden kann. Der Browser reagiert in dieser Zeit daher träge.

CAsync.Debug

CAsync.Debug: Boolean; Init = false 

Durch Setzen von Debug auf true wird erreicht, dass der Ablauf von Schleifen des mit Async programmierten JavaScripts nicht unterbrochen wird. Dies wird erreicht, indem die Funktion GetElapsedTime() immer 0 und IsTimerExpired() immer false zurückgibt.

CAsync.OnException

CAsync.OnException: Function; Init = function(err,caller){ alert(err); return true; } 

Diesem Property kann eine Funktion zugewiesen werden, welche das Verhalten bei einem Exception in einem aufgerufenen Script-Abschnitt festlegt. Die Standardfunktion gibt eine Messagebox mit der Fehlermeldung aus und bricht die Ausführung mit einem Exception an dieser Stelle ab.

Wenn OnException = null ist, wird bei einem Fehler die Ausführung an dieser Stelle mit einem Exception abgebrochen.

Der Returnwert der Funktion bestimmt, on der Fehler ignoriert werden soll (Return = false) oder ob mit einem Exception abgebrochen werden soll (Return = true).

Will man zum Beispiel die Ausführung bei einem Fehler zwar abbrechen, jedoch kein Exception zurück geben, so kann man die folgende Funktion verwenden:

Async.OnException = StopWithoutException;

function StopWithoutException( aErr, aAsync ) { 
  aAsync.Stop(); 
  return false; 
}

Oder dasselbe inline:

Async.OnException = function(err,caller) { caller.Stop(); return false; };

CAsync.TimerStartTime

CAsync.TimerStartTime: Integer(>=0); ReadOnly; Init = 0 

Beim Aufruf von StartTimer() wird in TimerStartTime die aktuelle Zeit in Millisekunden seit 1.1.1970 gespeichert. Mit der Funktion GetElapsedTime() kann später abgefragt werden, wie viele Millisekunden seit dem Aufruf von StartTimer() vergangen sind. Aufgrund dieses Wertes kann die Ausführung einer Schleife unterbrochen werden, z.B. nach 50 ms, um anderen Prozessen Zeit einzuräumen.

Weitere Infos zur Seite
Erzeugt Montag, 10. Februar 2014
von wabis
Zum Seitenanfang
Geändert Montag, 1. August 2016
von wabis