Jangan membuat blob, buatlah secara singkat

Berikut adalah pemberitahuan untuk semua penggemar BlobBuilder, BlobBuilder akan dihentikan.

BlobBuilder adalah API praktis untuk membuat Blob (atau File) di JavaScript. Fitur ini sudah ada sejak Chrome 8, FF 6, dan IE 10, tetapi belum pernah dikirimkan di Safari, dan kemungkinan tidak akan pernah. Perubahan spesifikasi terbaru pada File API mencakup konstruktor baru untuk Blob, yang pada dasarnya membuat BlobBuilder tidak relevan. Bahkan, build malam Safari telah menonaktifkannya dan Chrome akan segera memperingatkan Anda di konsol.

Sebagai perbandingan, di bawah ini adalah kode yang sama menggunakan konstruktor BlobBuilder yang tidak digunakan lagi dan Blob baru. Cuplikan membuat stylesheet dan menambahkannya ke 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);

Praktis! Jadi, sekarang, alih-alih menambahkan ke BlobBuilder, kita cukup membuat Blob dari array bagian data. Bagian data dapat berupa jenis yang berbeda (DOMString, ArrayBuffer, Blob) dan dalam urutan apa pun. Contoh:

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

Perhatikan juga bahwa parameter objek kedua bersifat opsional. Untuk mengetahui informasi selengkapnya tentang perubahan ini, lihat dokumen MDN tentang Blob.