Bloblar değil, yapın

BlobBuilder'ın kullanımdan kaldırılacağını duyurmak isteriz.

BlobBuilder, JavaScript'te Blob (veya Dosya) oluşturmak için kullanışlı bir API'dir. Chrome 8, FF 6 ve IE 10'dan beri mevcuttur ancak Safari'de hiç kullanıma sunulmamıştır ve muhtemelen sunulmayacaktır. File API'de yapılan son spesifikasyon değişiklikleri arasında Blob için yeni bir kurucu işlevi yer alır. Bu işlev, BlobBuilder'ı özünde alakasız hale getirir. Aslında Safari gece sürümlerinde bu özellik zaten devre dışı bırakıldı ve Chrome çok yakında konsolda sizi uyarmaya başlayacak.

Karşılaştırma için aşağıda, desteği sonlandırılan BlobBuilder ve yeni Blob kurucusunun kullanıldığı aynı kod verilmiştir. Sana Özel snippet'i bir stil sayfası oluşturur ve bunu DOM'a ekler.

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

Çok kullanışlı. Artık bir BlobBuilder'ye eklemek yerine Blob'yi bir veri parçası dizisinden oluşturabiliriz. Veri bölümleri farklı türlerde (DOMString, ArrayBuffer, Blob) ve herhangi bir sırada olabilir. Örneğin:

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

Ayrıca ikinci nesne parametresinin isteğe bağlı olduğunu unutmayın. Bu değişiklikler hakkında daha fazla bilgi için Blob ile ilgili MDN dokümanlarına göz atın.