Benutzer:J*/lib/async.js
< Benutzer:J* | lib
Zur Navigation springen
Zur Suche springen
Version vom 22. März 2009, 12:01 Uhr von J* (Diskussion | Beiträge)
Hinweis: Leere nach dem Speichern den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Gehe zu Menü → Einstellungen (Opera → Einstellungen auf dem Mac) und dann auf Datenschutz & Sicherheit → Browserdaten löschen → Gespeicherte Bilder und Dateien.
/* +-------------------------------------------------------------------------+
* | |
* | Modul 2: Die Async-Klasse, um asynchrone Vorgänge behandeln zu können |
* | mehr Erklärung gibt's woanders ... vielleicht ... |
* | |
* +-------------------------------------------------------------------------+
*/
function Async ( arr, ondone )
{
var asyncobj = this;
arr.each( function(d) { asyncobj.push(d); } );
this.pointer = 0;
this.ondone = ondone;
this.nextElement = function() { return this[this.pointer+1]; };
this.currentElement = function() { return this[this.pointer]; };
this.start = function ( obj, ond ) {
if (ond != null)
{
this.ondone = ond;
}
this.pointer = 0;
this._control( obj );
};
this.continue = function ( obj ) {
this.pointer++;
this._control( obj );
};
this._control = function ( obj ) {
if (this.pointer >= this.length)
{
if (typeof(this.ondone)=="function")
{
this.ondone( obj, this );
return;
}
if (typeof(this.ondone)=="object") // instanceof gibt hier nur ärger
{
this.ondone.continue( obj );
return;
}
}
if (this[this.pointer]==null)
return;
if (typeof(this[this.pointer])=="function")
{
this.continue( this[this.pointer]( obj, this ) );
return;
}
if (typeof(this[this.pointer])=="object") //auch hier gibt's Probleme mit instanceof
{
this[this.pointer].start( obj, this );
return;
}
};
}
Async.prototype = new Array ();