dedlfix: XHR und mehrere Progressbars

Beitrag lesen

Tach!

Closures. Ich nähme auch keine ID, sondern eine Referenz auf das Objekt selbst. Also die Referenz auf das XHR und die Referenz auf die Progressbar in eine Closure stecken, und wenn der Callback aufgerufen wird, kann man von da aus auf die Variablen im Scope der Closure zugreifen.

Hast Du mal ein Beispiel dafür wie das für beliebig viele Progressbars auszusehen hat? Also wie im EventListener die Zuordnung progressbar <=> xhrObject erfolgt ohne eine Eigenschaft id zu haben.

Die erfolgt nicht im EventListener sondern in der Closure, in der auch der EventListener steckt.

function transfer() {
   var xhr = ...;
   var progress = ...;

   xhr.onsomething = function() {
     progress.foo = 'bar';
   };
}

Das ergibt ein ähnliches Bild wie bei klassischer (auch im Sinne von klassenbasierter) OOP. Die Funktion transfer entspricht der Klasse, die Variablen darin den Eigenschaften. Jeder Aufruf der Funktion erzeugt sozusagen eine Instanz mit eigenem Scope. Sehr vereinfacht gesagt.

Ählich liegt für mich das Problem hier

 canvas.toBlob(function(blob) {} );

innerhalb der Funktion, die bereits selbst in einen EventListener geschachtelt ist, brauche ich auch eine Reihe von Angaben, aber die Funktion hat nur ein Argument. Idee?

Eine Closure drumherumbauen und das Zeug dort ablegen.

dedlfix.