Nie twórz obiektów blob, tylko buduj je

Informujemy wszystkich fanów BlobBuilder, że ich nie ma.

BlobBuilder to przydatny interfejs API do tworzenia obiektów blob (lub plików) w języku JavaScript. Jest dostępna od Chrome 8, FF 6 oraz IE 10, ale nigdy nie była dostarczana w Safari i prawdopodobnie nigdy nie zostanie. Ostatnie zmiany w specyfikacji interfejsu File API obejmują nowy konstruktor dla Blob, przez co BlobBuilder nie ma już znaczenia. Noclegi w Safari zostały już wyłączone i wkrótce Chrome zacznie ostrzegać Cię w konsoli.

Dla porównania: poniżej znajduje się ten sam kod, który zawiera wycofany BlobBuilder i nowy konstruktor Blob. Fragment kodu tworzy arkusz stylów i dołącza go do modelu DOM.

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);

Przydatne. Obecnie, zamiast dołączać do elementu BlobBuilder, możemy po prostu utworzyć Blob z tablicy części danych. Części danych mogą być różnego typu (DOMString, ArrayBuffer, Blob) i mogą być różne w dowolnej kolejności. Na przykład:

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

Pamiętaj, że drugi parametr obiektu jest opcjonalny. Więcej informacji o tych zmianach znajdziesz w dokumentacji MDN na temat Blob.