Erstellen Sie keine Blobs, sondern erstellen Sie sie.

BlobBuilder wird eingestellt.

BlobBuilder ist eine praktische API zum Erstellen von Blobs (oder Dateien) in JavaScript. Sie ist seit Chrome 8, Firefox 6 und IE 10 verfügbar, wurde aber nie in Safari eingeführt und wird es wahrscheinlich auch nie. Zu den jüngsten Änderungen an der Spezifikation der File API gehört ein neuer Konstruktor für Blob, wodurch BlobBuilder im Grunde irrelevant wird. In den Safari-Nightlies ist es bereits deaktiviert und in Chrome werden Sie demnächst in der Konsole gewarnt.

Zum Vergleich ist unten derselbe Code mit dem veralteten BlobBuilder- und dem neuen Blob-Konstruktor zu sehen. Das Snippet erstellt ein Stylesheet und hängt es an das DOM an.

BlobBuilder():

window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder ||
                        window.MozBlobBuilder || window.MSBlobBuilder;
window.URL = window.URL || window.webkitURL;

var bb = new BlobBuilder();
bb.append('body { color: red; }');
var blob = bb.getBlob('text/css');

var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = window.URL.createObjectURL(blob);

document.body.appendChild(link);

Blob():

window.URL = window.URL || window.webkitURL;

var blob = new Blob(['body { color: red; }'], {type: 'text/css'});

var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = window.URL.createObjectURL(blob);
document.body.appendChild(link);

Praktisch! Anstatt also einem BlobBuilder etwas hinzuzufügen, können wir die Blob jetzt einfach aus einem Array von Datenteilen erstellen. Die Datenteile können unterschiedliche Typen (DOMString, ArrayBuffer, Blob) haben und in beliebiger Reihenfolge angeordnet sein. Beispiel:

var blob = new Blob(['1234567890', blob, arrayBuffer]);

Der zweite Objektparameter ist optional. Weitere Informationen zu diesen Änderungen finden Sie in den MDN-Dokumenten zu Blobs.