Tüm BlobBuilder hayranları için uyarı, hoşça kal!
BlobBuilder
, JavaScript'te Blob'lar (veya Dosyalar) oluşturmak için kullanışlı bir API'dir. Chrome 8, FF 6 ve IE 10'dan beri kullanımdaydı, ancak Safari'de hiç gönderilmemiş ve muhtemelen hiçbir zaman gönderilmeyecek. Dosya API'sinde yapılan son teknik değişiklikler, Blob
için yeni bir oluşturucu içeriyor. Bu, BlobBuilder
öğesini alakasız hale getiriyor. Hatta Safari gecelikleri bu özelliği zaten devre dışı bırakmış. 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
kurucusunu kullanan aynı kod verilmiştir. 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
öğesine eklemek yerine bir dizi veri parçasından Blob
öğesi 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]);
İkinci nesne parametresinin isteğe bağlı olduğunu da unutmayın. Bu değişiklikler hakkında daha fazla bilgi edinmek için Blob'daki MDN dokümanlarına bakın.