Bloblar değil, yapın

Tüm BlobBuilder meraklılarına duyuruyoruz. Hoşça kalın.

BlobBuilder, JavaScript'te Blob (veya Dosyalar) oluşturmak için kullanışlı bir API'dir. Chrome 8, FF 6 ve IE 10'dan beri kullanılıyor ancak Safari'de hiç gönderilmedi ve muhtemelen hiçbir zaman gönderilmeyecek. File API'de yapılan son spesifikasyon değişiklikleri, Blob için yeni bir oluşturucu içerir. Bu da BlobBuilder ürününü alakasız hale getirir. Hatta Safari geceleri bu özelliği zaten devre dışı bıraktı ve Chrome çok yakında konsolda sizi uyarmaya başlayacak.

Karşılaştırma amacıyla, aşağıda kullanımdan kaldırılan BlobBuilder ve yeni Blob oluşturucusunu kullanan aynı kod gösterilmektedir. Snippet bir stil sayfası oluşturur ve bunu DOM'ye 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);

Kullanışlı! Dolayısıyla, artık bir BlobBuilder eklemek yerine, Blob öğesini bir veri bölümü 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'daki MDN dokümanlarına göz atın.